Re: [HACKERS] Hang in pldebugger after git commit : 98a64d0 - Mailing list pgsql-hackers

From Ashutosh Sharma
Subject Re: [HACKERS] Hang in pldebugger after git commit : 98a64d0
Date
Msg-id CAE9k0PnAwqt=WbZcKsoH1QBoz+_JrO5WupER3mVU8p_RmWC=UQ@mail.gmail.com
Whole thread Raw
In response to Re: [HACKERS] Hang in pldebugger after git commit : 98a64d0  (Michael Paquier <michael.paquier@gmail.com>)
Responses Re: [HACKERS] Hang in pldebugger after git commit : 98a64d0  (Michael Paquier <michael.paquier@gmail.com>)
List pgsql-hackers
Hi Micheal,

> I bet that this patch breaks many things for any non-WIN32 platform.

It seems to me like you have already identified some issues when
testing. If yes, could please share it. I have tested my patch  on
CentOS-7 and Windows-7 machines and have found no issues. I ran all
the regression test suites including the test cases for pldebugger.

> What I think you want to do is modify the flag events associated to
> the socket read/write event to be updated in WaitEventAdjustWin32(),

Well, this does not work as the following if check does not allow the
FD_READ or FD_WRITE flags to be applied on the already existing socket
handle. We have already debugged and verified this.
      if (events == event->events &&               (!(event->events & WL_LATCH_SET) || set->latch == latch))
  return;
 

> which gets called in ModifyWaitEvent(). By the way, position 0 refers
> to a socket for FeBeWaitSet, but that's a mandatory thing when a list
> of events is created with AddWaitEventToSet.

Yes, 0th position refers to event for socket and we will have to pass
0 as an argument to get socket events from FeBeWaitSet. You may see
the usage of ModifyWaitEvent() in secure_read where we are passing the
hard coded value (0) to get the socket events from the FeBeWaitSet.



pgsql-hackers by date:

Previous
From: Michael Paquier
Date:
Subject: Re: [HACKERS] Hang in pldebugger after git commit : 98a64d0
Next
From: Heikki Linnakangas
Date:
Subject: pg_authid.rolpassword format (was Re: [HACKERS] Password identifiers,protocol aging and SCRAM protocol)