Add log about client's tid for debug 43/281943/3
authorIlho Kim <ilho159.kim@samsung.com>
Fri, 23 Sep 2022 10:02:55 +0000 (19:02 +0900)
committerIlho Kim <ilho159.kim@samsung.com>
Mon, 26 Sep 2022 23:44:34 +0000 (08:44 +0900)
Change-Id: I473044bf04a1ddbd7f1fd3f24d39c414c87dd4c1
Signed-off-by: Ilho Kim <ilho159.kim@samsung.com>
src/client/pkginfo_client.cc
src/server/create_cache_request.cc
src/server/create_cache_request.hh
src/server/pkg_request.cc
src/server/pkg_request.hh
src/server/worker_thread.cc

index fa38787..cbd3ae5 100644 (file)
@@ -110,6 +110,12 @@ bool PkgInfoClient::SendRequest() {
     return false;
   }
 
+  pid_t tid = gettid();
+  if (socket_->SendData(&tid, sizeof(tid)) != 0) {
+    LOG(ERROR) << "fail to send data";
+    return false;
+  }
+
   if (socket_->SendData(&len, sizeof(len)) != 0) {
     LOG(ERROR) << "fail to send data";
     return false;
index 90b1864..a231aa0 100644 (file)
@@ -33,6 +33,10 @@ pid_t CreateCacheRequest::GetSenderPID() {
   return getpid();
 }
 
+pid_t CreateCacheRequest::GetSenderTID() {
+  return gettid();
+}
+
 uid_t CreateCacheRequest::GetSenderUID() {
   return uid_;
 }
index 654c379..f16e981 100644 (file)
@@ -41,6 +41,7 @@ class EXPORT_API CreateCacheRequest : public PkgRequest {
   const unsigned char* GetData() override;
   int GetSize() override;
   pid_t GetSenderPID() override;
+  pid_t GetSenderTID() override;
   uid_t GetSenderUID() override;
   pkgmgr_common::ReqType GetRequestType() override;
   bool SendData(tizen_base::Parcel parcel) override;
index 09c798d..5a00848 100644 (file)
@@ -24,11 +24,11 @@ namespace pkgmgr_server {
 
 PkgRequest::PkgRequest()
     : request_type_(pkgmgr_common::REQ_TYPE_NONE), data_size_(-1),
-        privilege_checked_(false) {}
+        privilege_checked_(false), sender_tid_(0) {}
 
 PkgRequest::PkgRequest(int fd)
     : request_type_(pkgmgr_common::REQ_TYPE_NONE), data_size_(-1),
-        privilege_checked_(false) {
+        privilege_checked_(false), sender_tid_(0) {
   socket_ = std::unique_ptr<pkgmgr_common::socket::DataSocket>(
       new (std::nothrow) pkgmgr_common::socket::DataSocket(fd));
   if (socket_ == nullptr)
@@ -56,6 +56,10 @@ pid_t PkgRequest::GetSenderPID() {
   return socket_->GetPID();
 }
 
+pid_t PkgRequest::GetSenderTID() {
+  return sender_tid_;
+}
+
 uid_t PkgRequest::GetSenderUID() {
   return socket_->GetUID();
 }
@@ -70,6 +74,12 @@ bool PkgRequest::ReceiveData() {
     LOG(ERROR) << "Failed to ReceiveData";
     return false;
   }
+  ret = socket_->ReceiveData(&sender_tid_, sizeof(sender_tid_));
+  if (ret < 0) {
+    LOG(ERROR) << "Failed to ReceiveData";
+    request_type_ = pkgmgr_common::REQ_TYPE_NONE;
+    return false;
+  }
   ret = socket_->ReceiveData(&data_size_, sizeof(data_size_));
   if (ret < 0) {
     LOG(ERROR) << "Failed to ReceiveData";
index baee57b..3ab6773 100644 (file)
@@ -44,6 +44,7 @@ class EXPORT_API PkgRequest {
   virtual const unsigned char* GetData();
   virtual int GetSize();
   virtual pid_t GetSenderPID();
+  virtual pid_t GetSenderTID();
   virtual uid_t GetSenderUID();
   virtual pkgmgr_common::ReqType GetRequestType();
   virtual bool SendData(tizen_base::Parcel parcel);
@@ -56,6 +57,7 @@ class EXPORT_API PkgRequest {
   pkgmgr_common::ReqType request_type_;
   int data_size_;
   bool privilege_checked_;
+  pid_t sender_tid_;
 };
 
 }  // namespace pkgmgr_server
index b779bfa..915b8c3 100644 (file)
@@ -133,7 +133,7 @@ void WorkerThread::Run() {
 
     auto type = req->GetRequestType();
     LOG(WARNING) << "Request type: " << pkgmgr_common::ReqTypeToString(type)
-                 << " pid: " << req->GetSenderPID();
+        << " pid: " << req->GetSenderPID() << " tid: " << req->GetSenderTID();
     auto handler = factory.GetRequestHandler(type);
     if (handler == nullptr)
       continue;
@@ -149,7 +149,8 @@ void WorkerThread::Run() {
       if (req->SendData(handler->ExtractResult()) == false)
         LOG(ERROR) << "Failed to send response pid: " << req->GetSenderPID();
       else
-        LOG(WARNING) << "Success response pid: " << req->GetSenderPID();
+        LOG(WARNING) << "Success response pid: " << req->GetSenderPID()
+            << " tid: " << req->GetSenderTID();
     } catch (const std::exception& err) {
       LOG(ERROR) << "Exception occurred: " << err.what()
                  << ", pid: " << req->GetSenderPID();