Re: PATCH: pgagent connection string parsing

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: PATCH: pgagent connection string parsing

Ashesh Vashi
[Adding pgadmin-hackers list...]

Hi Team,

Using the mutex around the logging code too to avoid overlapping log message.
Please review it, and let me know your concern.

Implementation details:
- Moved 'MutexLogger' class, which was used by the connection management code only, in the include/misc.h
-  Use a static mutex for the non-windows system, and used 'MutexLogger' instance for the better lock/unlock mechanism in the LogMessage(...) function.

-- Thanks, Ashesh


On Wed, May 16, 2018 at 6:59 PM, Dave Page <[hidden email]> wrote:


On Wed, May 16, 2018 at 2:27 PM, Ashesh Vashi <[hidden email]> wrote:
On Tue, May 8, 2018 at 3:01 PM, Thomas Krennwallner <[hidden email]> wrote:
Hi,

I've just found this suspicious log messages (I've added line numbers in
the attachment pgagent.log):

 8  Tue May 8 11:11:23 2018 DEBUG: Creating DB connection: service=xiserver56_tisdbadm cTue May o8nne ct_timeout11:=151: 23 201 8applica DEBtUion_nameG: S=pglaeegpeinngt.@.d.e
 9  v_tisdevel dbname=dev_tisdevel

Note how line 8 and 9 are actually two log messages, which should
have been printed in two lines:

Tue May 8 11:11:23 2018 DEBUG: Creating DB connection: service=xiserver56_tisdbadm connect_timeout=5  application_name=pgagent@dev_tisdevel dbname=dev_tisdevel
Tue May 8 11:11:23 2018 DEBUG: Sleeping...

It appears that two threads are writing to stdout at the same time,
which calls for an exclusive lock in function
void LogMessage(const std::wstring &msg, const int &level)
Dave,

Shall we use a mutex here too?


I would think so, yes.  

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


pgagent_logger_mutex.patch (4K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: PATCH: pgagent connection string parsing

Ashesh Vashi
On Wed, May 16, 2018 at 7:31 PM, Ashesh Vashi <[hidden email]> wrote:
[Adding pgadmin-hackers list...]

Hi Team,

Using the mutex around the logging code too to avoid overlapping log message.
Please review it, and let me know your concern.

Implementation details:
- Moved 'MutexLogger' class, which was used by the connection management code only, in the include/misc.h
-  Use a static mutex for the non-windows system, and used 'MutexLogger' instance for the better lock/unlock mechanism in the LogMessage(...) function.
Hi Team,

Please review this patch.

-- Thanks, Ashesh 

-- Thanks, Ashesh


On Wed, May 16, 2018 at 6:59 PM, Dave Page <[hidden email]> wrote:


On Wed, May 16, 2018 at 2:27 PM, Ashesh Vashi <[hidden email]> wrote:
On Tue, May 8, 2018 at 3:01 PM, Thomas Krennwallner <[hidden email]> wrote:
Hi,

I've just found this suspicious log messages (I've added line numbers in
the attachment pgagent.log):

 8  Tue May 8 11:11:23 2018 DEBUG: Creating DB connection: service=xiserver56_tisdbadm cTue May o8nne ct_timeout11:=151: 23 201 8applica DEBtUion_nameG: S=pglaeegpeinngt.@.d.e
 9  v_tisdevel dbname=dev_tisdevel

Note how line 8 and 9 are actually two log messages, which should
have been printed in two lines:

Tue May 8 11:11:23 2018 DEBUG: Creating DB connection: service=xiserver56_tisdbadm connect_timeout=5  application_name=pgagent@dev_tisdevel dbname=dev_tisdevel
Tue May 8 11:11:23 2018 DEBUG: Sleeping...

It appears that two threads are writing to stdout at the same time,
which calls for an exclusive lock in function
void LogMessage(const std::wstring &msg, const int &level)
Dave,

Shall we use a mutex here too?


I would think so, yes.  

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company