Bladeren bron

Merge branch 'oilyang_fixed_everything' of http://gitee.itc.cmbchina.cn/QD_RemoteBankArea/LR04.02_RVCTerminalPlus into oilyang_fixed_everything

oilyang 1 jaar geleden
bovenliggende
commit
60097c409a

+ 3 - 0
Framework/Common/SpHelper.h

@@ -216,6 +216,7 @@ struct SpReqAnsContext
 
 	virtual ErrorCodeEnum Answer(ErrorCodeEnum Error = Error_Succeed)
 	{
+		EntityResource::clearLink();
 		//static_assert(Error == Error_Succeed, "Input parameter must be Error_Succeed!");
 		if (Error == Error_Succeed) {
 			CAutoBuffer Buf = SpObject2Buffer<TAns>(Ans);
@@ -227,6 +228,7 @@ struct SpReqAnsContext
 
 	virtual ErrorCodeEnum Answer(ErrorCodeEnum eSysError, DWORD dwUserError)
 	{
+		EntityResource::clearLink();
 		if (eSysError == Error_Succeed) {
 			CAutoBuffer Buf = SpObject2Buffer<TAns>(Ans);
 			return m_spTransactionContext->SendAnswer(Buf, true);
@@ -237,6 +239,7 @@ struct SpReqAnsContext
 
 	virtual ErrorCodeEnum Answer(ErrorCodeEnum eSysError, DWORD dwUserError, CSimpleString str)
 	{
+		EntityResource::clearLink();
 		if (eSysError == Error_Succeed) {
 			CAutoBuffer Buf = SpObject2Buffer<TAns>(Ans);
 			return m_spTransactionContext->SendAnswer(Buf, true);

+ 2 - 2
Framework/RvcLogSdk/log_builder.c

@@ -199,7 +199,7 @@ int add_beidou_log(log_group_builder* bder, beidou_log_item* log) {
 }
 
 
-int add_log(log_group_builder* bder, long start_time, uint32_t pack_index, log_item* log)
+int add_log(log_group_builder* bder, long start_time, uint32_t pack_index, log_item* log, long record_time)
 {
     cJSON* skyeye_content;
     cJSON* united_content;
@@ -222,7 +222,7 @@ int add_log(log_group_builder* bder, long start_time, uint32_t pack_index, log_i
     aos_debug_log((LB, "add_log 1"));
     GetLocalIP(local_ip_str);
     aos_debug_log((LB, "add_log 2"));
-    now = time(NULL);
+    now = record_time;
     aos_debug_log((LB, "add_log 3"));
     GetTimeStr(now, nowTime);
     aos_debug_log((LB, "add_log 4"));

+ 1 - 1
Framework/RvcLogSdk/log_builder.h

@@ -79,7 +79,7 @@ typedef struct _serialize_buf {
 extern log_group_builder* log_group_create(log_producer_config* config);
 extern log_group_builder* log_group_clone(log_group_builder* bder);
 extern void log_group_destroy(log_group_builder* bder);
-extern int add_log(log_group_builder* bder, long start_time, uint32_t pack_index, log_item* log);
+extern int add_log(log_group_builder* bder, long start_time, uint32_t pack_index, log_item* log, long record_time);
 extern int add_beidou_log(log_group_builder* bder, beidou_log_item* log);
 extern int add_log_raw(log_group_builder* bder, build_item* log);
 extern int add_log_serialize_buf(log_group_builder* bder, serialize_buf* buffer);

+ 2 - 2
Framework/RvcLogSdk/log_producer_client.c

@@ -126,7 +126,7 @@ void destroy_log_producer_client(log_producer_client* client)
 }
 
 log_producer_result log_producer_client_add_log(log_producer_client* client,
-    log_item* log, int flush)
+    log_item* log, int flush, long record_time)
 {
     int rst;
     int i = 0, j = 0;
@@ -145,7 +145,7 @@ log_producer_result log_producer_client_add_log(log_producer_client* client,
     CS_LEAVE(manager->lock);
 
     //日志放入内存缓存,再发送
-    rst = log_producer_manager_add_log(manager, log, flush);
+    rst = log_producer_manager_add_log(manager, log, flush, record_time);
     //aos_debug_log((LB, "log producer client add log rst %d", rst));
     
     return rst;

+ 1 - 3
Framework/RvcLogSdk/log_producer_client.h

@@ -60,9 +60,7 @@ LOG_EXPORT void destroy_log_producer_client(log_producer_client* client);
  * @param flush
  * @return ok if success, LOG_PRODUCER_DROP_ERROR if buffer is full, LOG_PRODUCER_INVALID if client is destroyed, LOG_PRODUCER_PERSISTENT_ERROR is save binlog failed.
  */
-LOG_EXPORT log_producer_result log_producer_client_add_log(log_producer_client* client,
-    log_item* log,
-    int flush);
+LOG_EXPORT log_producer_result log_producer_client_add_log(log_producer_client* client, log_item* log, int flush, long record_time);
 
 /**
  * add log天眼

+ 2 - 2
Framework/RvcLogSdk/log_producer_manager.c

@@ -673,11 +673,11 @@ CS_LEAVE(producer_manager->lock); \
 return ret; }
 
 
-log_producer_result log_producer_manager_add_log(log_producer_manager* producer_manager, log_item* log, int flush)
+log_producer_result log_producer_manager_add_log(log_producer_manager* producer_manager, log_item* log, int flush, long record_time)
 {
     LOG_PRODUCER_MANAGER_ADD_LOG_BEGIN;
 
-    if (0 != add_log(producer_manager->builder, producer_manager->start_time, producer_manager->pack_index, log)) {
+    if (0 != add_log(producer_manager->builder, producer_manager->start_time, producer_manager->pack_index, log, record_time)) {
         aos_error_log((LB, "add log failed !"));
     }
 

+ 1 - 3
Framework/RvcLogSdk/log_producer_manager.h

@@ -48,9 +48,7 @@ typedef struct _log_producer_manager
 extern log_producer_manager* create_log_producer_manager(log_producer_config* producer_config);
 extern void destroy_log_producer_manager(log_producer_manager* manager);
 
-extern log_producer_result log_producer_manager_add_log(log_producer_manager* producer_manager,
-    log_item* log,
-    int flush);
+extern log_producer_result log_producer_manager_add_log(log_producer_manager* producer_manager, log_item* log, int flush, long record_time);
 
 extern log_producer_result log_producer_manager_add_beidou_log(log_producer_manager* producer_manager,
     beidou_log_item* log,

+ 2 - 2
Framework/RvcLogSdk/log_producer_sender.c

@@ -22,7 +22,7 @@ const char* LOGE_WRITE_QUOTA_EXCEED = "WriteQuotaExceed";
 const char* LOGE_SHARD_WRITE_QUOTA_EXCEED = "ShardWriteQuotaExceed";
 const char* LOGE_TIME_EXPIRED = "RequestTimeExpired";
 
-#define SEND_SLEEP_INTERVAL_MS 100
+#define SEND_SLEEP_INTERVAL_MS 50
 #define MAX_NETWORK_ERROR_SLEEP_MS 3000
 #define BASE_NETWORK_ERROR_SLEEP_MS 300
 #define MAX_QUOTA_ERROR_SLEEP_MS 10000
@@ -261,7 +261,7 @@ void * log_producer_send_fun(void * param)
             }
         }
 
-        sleepMs = log_producer_on_send_done(send_param, rst, &error_info);//执行senddone,删除数据库中内容
+        sleepMs = log_producer_on_send_done(send_param, rst, &error_info) / 2;//执行senddone,删除数据库中内容
 
         post_log_result_destroy(rst);
 

+ 13 - 5
Framework/spbase/sp_logwithlink.cpp

@@ -28,7 +28,7 @@
 
 void* g_logProducer = NULL;//为spshell、spbase共用,所以不放入getEntityResource中
 //#define MAX_LOG_LEN 9700 //大致为10 * 1024 - 400(固定头)
-#define MAX_LOG_LEN 2000
+#define MAX_LOG_LEN 1900
 
 #define MAX_ENTITY_SAVE_LEN 100
 
@@ -111,9 +111,11 @@ public:
     CSimpleString VtmCode;
     void* logProducer;
     bool m_doLog;
+    long m_time;
     Link_private(LOG_LEVEL_E t_level, LOG_TYPE_E t_type)
         : Level(t_level), Type(t_type), BeginTime(0), EndTime(0), CostTime(0), ResultCode("SUC0000"), m_doLog(true)
     {
+        m_time = time(NULL);
         TraceID = ResultMsg = LogCode = API = BussID = TipMsg = SourceType = VtmCode = "";
         logProducer = NULL;
     }
@@ -283,6 +285,12 @@ DbgToBeidou& DbgToBeidou::withLogProducer(void* t_logProducer) {
 
 DbgWithLink::DbgWithLink(LOG_LEVEL_E t_level, LOG_TYPE_E t_type) : m_priPtr(new Link_private(t_level, t_type))
 {
+    auto curLink = EntityResource::getLink();
+    if (curLink.traceId.GetLength() > 0 && curLink.bussinessId.GetLength() > 0)
+    {
+        m_priPtr->TraceID = curLink.traceId;
+        m_priPtr->BussID = curLink.bussinessId;
+    }
 }
 
 DbgWithLink::~DbgWithLink() {
@@ -423,9 +431,9 @@ void DbgWithLink::operator () (const char* str, ...)  const  {
         }
         if (cur != NULL) {
             if (log.Type == LOG_TYPE_SYSTEM && curEntityLogLevel <= log.Level)
-                rst = log_producer_client_add_log(cur, &log, 1);
+                rst = log_producer_client_add_log(cur, &log, 1, m_priPtr->m_time);
             else if (log.Type != LOG_TYPE_SYSTEM)
-                rst = log_producer_client_add_log(cur, &log, 1);
+                rst = log_producer_client_add_log(cur, &log, 1, m_priPtr->m_time);
         }
     }
 
@@ -486,9 +494,9 @@ void DbgWithLink::operator () ()  const  {
     }
     if (cur != NULL) {
         if (log.Type == LOG_TYPE_SYSTEM && curEntityLogLevel <= log.Level)
-            log_producer_client_add_log(cur, &log, 1);
+            log_producer_client_add_log(cur, &log, 1, m_priPtr->m_time);
         else if (log.Type != LOG_TYPE_SYSTEM)
-            log_producer_client_add_log(cur, &log, 1);
+            log_producer_client_add_log(cur, &log, 1, m_priPtr->m_time);
     }
 
     if (!m_priPtr->m_doLog)

+ 0 - 3
Framework/spshell/svc.cpp

@@ -498,9 +498,6 @@ void on_machine_reboot(sp_rpc_server_t *server, int epid, int svc_id, int call_t
 		if (eRebootTrigger == RebootTrigger_DeadForever) {
 			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("shutdown framework now");
 			result = KickoffSpRestart(false);
-		} else if (eRebootTrigger == RebootTrigger_Unknown) {
-			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("quit  framework now, let quit flag do it, maybe would booted by guardian in ten minutes");
-			result = 0;
 		} else {
             DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM).setAPI(__FUNCTION__)("reboot framework now");
             result = KickoffSpRestart(true);

+ 1 - 0
Module/include/EventCode.h

@@ -586,6 +586,7 @@ ERROR_ACCESSAUTH_CONNECT_ACS_x}
 #define LOG_WARN_CHROMIUM_INSTALL_URLS_CHECK	0x40200021
 #define LOG_WARN_CHROMIUM_INSTALL_NOTSURPORT	0x40200022
 #define LOG_WARN_CHROMIUM_VTMUSERMSG_ERR		0x40200023
+#define LOG_EVT_CHROMIUM_OPEN_INSTALLPAGE		0x40200024
 
 #define EVENT_RESTART_SHELL      0x50300001  // 重启Shell
 #define EVENT_RESTART_MACHINE     0x50300002  // 重启终端

+ 4 - 4
Module/mod_chromium/CModTools.cpp

@@ -450,7 +450,7 @@ namespace Chromium {
 			strCmdLine.Append(" --enable-media-stream=1 --enable-speech-input=1");
 		if (g_withConsole)
 			strCmdLine.Append(" --with-console");
-        strCmdLine.Append(" --no-sandbox --single-process");
+        strCmdLine.Append(" --no-sandbox");
         strCmdLine.Append(" --hide-controls");
         strCmdLine.Append(" --hide-tabs");
         strCmdLine.Append(" --logextend=").Append((+PAGE_TYPE::Ad)._to_string());
@@ -476,7 +476,7 @@ namespace Chromium {
             .Append(isExtend ? (+ERR_PAGE_REASON::extend)._to_string() : (+ERR_PAGE_REASON::main)._to_string());
         //strCmdLine.Append(" --hide-controls=true")
         strCmdLine.Append(" --cache-path=").Append(cachePath);
-        strCmdLine.Append(" --no-sandbox --single-process");
+        strCmdLine.Append(" --no-sandbox");
         strCmdLine.Append(" --hide-controls");
         if (g_useMagic)
             strCmdLine.Append(" --magic-str=").Append(m_magicStr.c_str());
@@ -518,7 +518,7 @@ namespace Chromium {
 		this->m_pEntity->GetFunction()->GetPath("Temp", cachePath);
 		cachePath.Append(CSimpleStringA(SPLIT_SLASH_STR)).Append("cefCache_").Append(m_strCacheHead.length() > 0 ? m_strCacheHead.c_str() : "").Append((+ERR_PAGE_REASON::Ad)._to_string());
 		strCmdLine.Append(" --cache-path=").Append(cachePath);
-		strCmdLine.Append(" --no-sandbox --single-process");
+		strCmdLine.Append(" --no-sandbox");
 		strCmdLine.Append(" --hide-controls");
 		strCmdLine.Append(" --lang=zh-CN");//install page need language chinese
 		strCmdLine.Append(" --hide-tabs");
@@ -538,7 +538,7 @@ namespace Chromium {
         cachePath.Append(CSimpleStringA(SPLIT_SLASH_STR)).Append("cefCache_").Append(m_strCacheHead.length() > 0 ? m_strCacheHead.c_str() : "").Append(m_specialPage_temp_name.c_str());
         //strCmdLine.Append(" --hide-controls=true")
         strCmdLine.Append(" --cache-path=").Append(cachePath);
-        strCmdLine.Append(" --no-sandbox --single-process");
+        strCmdLine.Append(" --no-sandbox");//don't use single-process, it will affect the cef log
         strCmdLine.Append(" --hide-controls");
         if (g_useMagic)
             strCmdLine.Append(" --magic-str=").Append(m_magicStr.c_str());

+ 10 - 0
Module/mod_chromium/baseEx.cpp

@@ -246,6 +246,7 @@ DWORD SaveCefclientLog(std::string magicStr)
 		cur.set_unrestricted();
 		message_queue mq(create_only, dstGuid.c_str(), 100, sizeof(cefclientLog), cur);
 		g_useMagic = true;
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("SaveCefclientLog thread begin");
 		while (true)
 		{
 			cefclientLog t_data;
@@ -257,7 +258,15 @@ DWORD SaveCefclientLog(std::string magicStr)
 			unsigned int t_priority = 0;
 			mq.receive(&t_data, sizeof(cefclientLog), t_recvSize, t_priority);
 			std::string source = std::string(t_data.m_filename) + "(" + std::to_string((ULONGLONG)t_data.m_filePos) + ")";
+#ifdef DEVOPS_ON_ST /*DevOps流水线编译,ST环境*/
+			DbgWithLink(t_data.m_level, t_data.m_type).withLogProducer(logProducer).setSourceType(source.c_str()).withExtendLog(true).setResultMsg(t_data.m_cefLog)();
+#elif defined(DEVOPS_ON_UAT)/*DevOps流水线编译,UAT环境*/
+			DbgWithLink(t_data.m_level, t_data.m_type).withLogProducer(logProducer).setSourceType(source.c_str()).withExtendLog(true).setResultMsg(t_data.m_cefLog)();
+#elif defined(DEVOPS_ON_PRD)/*DevOps流水线编译,PRD环境*/
 			DbgWithLink(t_data.m_level, t_data.m_type).withLogProducer(logProducer).setSourceType(source.c_str()).withExtendLog(false).setResultMsg(t_data.m_cefLog)();
+#else
+			DbgWithLink(t_data.m_level, t_data.m_type).withLogProducer(logProducer).setSourceType(source.c_str()).withExtendLog(true).setResultMsg(t_data.m_cefLog)();
+#endif // DEVOPS
 			if (sizeof(cefclientLog) != t_recvSize)
 				break;
 			/*特么制品库太恶心了
@@ -269,6 +278,7 @@ DWORD SaveCefclientLog(std::string magicStr)
 			DbgWithLink(tmp.m_level, tmp.m_type).setSourceType(source.c_str())(tmp.m_cefLog.c_str());
 			*/
 		}
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("SaveCefclientLog thread end");
 	}
 	catch (interprocess_exception& ex) {
 		message_queue::remove(dstGuid.c_str());

+ 1 - 0
Module/mod_chromium/mod_chromium.cpp

@@ -598,6 +598,7 @@ namespace Chromium {
 #endif 
 			boost::this_thread::sleep_for(boost::chrono::seconds(2));
 			openInstallPage();
+			LogEvent(Severity_High, LOG_EVT_CHROMIUM_OPEN_INSTALLPAGE, CSimpleStringA::Format("open install page"));
 		}
 			
 	}

+ 1 - 0
Module/mod_guiconsole/mod_GuiConsole.h

@@ -85,6 +85,7 @@ protected:
 	CUUID m_SubLogID3;
 	CUUID m_SubLogID4;
 	CUUID m_uuidVTMLoader;
+	CUUID m_uuidChromium;
 
 	// 当前维护用户信息
 	CSimpleStringA m_strUserID;

+ 10 - 0
Module/mod_guiconsole/mod_guiconsole.cpp

@@ -170,6 +170,9 @@ void CGUIConsoleEntity::OnPreStart(CAutoArray<CSimpleStringA> strArgs, CSmartPoi
 	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("subscribe VtmLoader %s",
 		(Error_Succeed == GetFunction()->SubscribeLog(m_uuidVTMLoader, this, Log_Event, Severity_None, Error_IgnoreAll, -1, "VtmLoader")) ? "success" : "failed");
 
+	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("subscribe Chromium %s",
+		(Error_Succeed == GetFunction()->SubscribeLog(m_uuidChromium, this, Log_Event, Severity_None, Error_IgnoreAll, -1, "Chromium")) ? "success" : "failed");
+
 	pTransactionContext->SendAnswer(Error_Succeed);
 }
 
@@ -194,6 +197,13 @@ void CGUIConsoleEntity::OnLog(const CAutoArray<CUUID>& SubIDs, const CUUID nLogI
 		m_FSM.m_pGuiTask->InitBack(this);
 	}
 
+	if (LOG_EVT_CHROMIUM_OPEN_INSTALLPAGE == dwUserCode)
+	{
+		DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("recv LOG_EVT_CHROMIUM_OPEN_INSTALLPAGE");
+		m_FSM.m_pGuiTask->HideGuiConsole();
+		m_FSM.m_pGuiTask->Close();
+	}
+
 	if (dwUserCode == EVENT_MACHINE_COVER_OPEN)		// 机盖打开
 	{
 		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("the machine cover open!!");

+ 1 - 1
addin/cmake/DependencyConanFiles.cmake

@@ -69,7 +69,7 @@ if(MSVC)
 			#mod_chromium
 			CEFControl/1.0@LR04.02_ThirdParty/testing
 			#mod_chromium
-			cefclient_mutable/2.0.19@LR04.02_ThirdParty/testing
+			cefclient_mutable/2.0.35@LR04.02_ThirdParty/testing
 			#libaudiorender
 			speex/1.2.1@LR04.02_ThirdParty/testing
 			#libvideoframework