From 71f976aea862a386c735d0bf772a29822209b951 Mon Sep 17 00:00:00 2001 From: Ilho Kim Date: Fri, 23 Sep 2022 19:02:55 +0900 Subject: [PATCH] Add log about client's tid for debug Change-Id: I473044bf04a1ddbd7f1fd3f24d39c414c87dd4c1 Signed-off-by: Ilho Kim --- src/client/pkginfo_client.cc | 6 ++++++ src/server/create_cache_request.cc | 4 ++++ src/server/create_cache_request.hh | 1 + src/server/pkg_request.cc | 14 ++++++++++++-- src/server/pkg_request.hh | 2 ++ src/server/worker_thread.cc | 5 +++-- 6 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/client/pkginfo_client.cc b/src/client/pkginfo_client.cc index fa38787..cbd3ae5 100644 --- a/src/client/pkginfo_client.cc +++ b/src/client/pkginfo_client.cc @@ -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; diff --git a/src/server/create_cache_request.cc b/src/server/create_cache_request.cc index 90b1864..a231aa0 100644 --- a/src/server/create_cache_request.cc +++ b/src/server/create_cache_request.cc @@ -33,6 +33,10 @@ pid_t CreateCacheRequest::GetSenderPID() { return getpid(); } +pid_t CreateCacheRequest::GetSenderTID() { + return gettid(); +} + uid_t CreateCacheRequest::GetSenderUID() { return uid_; } diff --git a/src/server/create_cache_request.hh b/src/server/create_cache_request.hh index 654c379..f16e981 100644 --- a/src/server/create_cache_request.hh +++ b/src/server/create_cache_request.hh @@ -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; diff --git a/src/server/pkg_request.cc b/src/server/pkg_request.cc index 09c798d..5a00848 100644 --- a/src/server/pkg_request.cc +++ b/src/server/pkg_request.cc @@ -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( 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"; diff --git a/src/server/pkg_request.hh b/src/server/pkg_request.hh index baee57b..3ab6773 100644 --- a/src/server/pkg_request.hh +++ b/src/server/pkg_request.hh @@ -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 diff --git a/src/server/worker_thread.cc b/src/server/worker_thread.cc index b779bfa..915b8c3 100644 --- a/src/server/worker_thread.cc +++ b/src/server/worker_thread.cc @@ -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(); -- 2.7.4