Web lists-archives.com

Re: Patch request to qt 5.9.4 (Re: [ANNOUNCEMENT] Qt 5.9.4)




----- Original Message -----

> From: Mark Geisert 
> To: cygwin
> Cc: 
> Date: 2019/3/11, Mon 16:21
> Subject: Re: Patch request to qt 5.9.4 (Re: [ANNOUNCEMENT] Qt 5.9.4)
> 
>T atsuro MATSUOKA wrote:
>>  ----- Original Message -----
>> 
>>>  From: Yaakov Selkowitz <yselkowitz
>>>  To: cygwin
>>>  Cc:
>>>  Date: 2019/3/11, Mon 09:53
>>>  Subject: Re: Patch request to qt 5.9.4 (Re: [ANNOUNCEMENT] Qt 5.9.4)
>>> 
>>>  On Mon, 2019-03-11 at 09:28 +0900, Tatsuro MATSUOKA wrote:
>>>>   > On Mon, 2019-03-04 at 07:43 +0900, Tatsuro MATSUOKA wrote:
>>>>   > >  I ask alpply a patch the below which enables to use qt 
> terminal
>>>  on gnuplot
>>>>   > for Cygwin.
>>>>   > >  (cygQt5Network-5.dll is affected.)
>>>>   > >
>>>>   > >  ---
>>>  a/qtbase-opensource-src-5.9.4/src/network/socket/qlocalsocket_unix.cpp
>>>>   > >  +++
>>>  b/qtbase-opensource-src-5.9.4/src/network/socket/qlocalsocket_unix.cpp
>>>>   > >  @@ -239,7 +239,7 @@ void 
> QLocalSocket::connectToServer(OpenM
>>>>   > >      }
>>>>   > >      // create the socket
>>>>   > >  -    if (-1 == (d->connectingSocket = 
> qt_safe_socket(PF_UNIX,
>>>  SOCK_STREAM, 0, O_NONBLOCK))) {
>>>>   > >  +    if (-1 == (d->connectingSocket = 
> qt_safe_socket(PF_UNIX,
>>>  SOCK_STREAM, 0))) {
>>>>   > >          
> d->errorOccurred(UnsupportedSocketOperationError,
>>>  QLatin1String("QLocalSocket::connectToServer"));
>>>>   > >          return;
>>>>   > >
>>>>   >
>>>>   > It seems we keep going in circles on this point.  If there is 
> a bug in
>>>>   > O_NONBLOCK, then please either narrow it down to an STC, or 
> provide a
>>>>   > patch to Cygwin.
>>>> 
>>>>   Very basic question. What is STC?
>>>>   I googled but I cannot find what is it.
>>> 
>>>  https://cygwin.com/acronyms/#STC 
>> 
>> 
>>  Sorry I cannot make STC due to lack of knowledge of QT.
>>  In stead, I explain what gnuplot do.
>> 
>>  On gnuplot for qt,
>>  plot is done by child process named gnuplot_qt.
>> 
>>  When gnuplot connect with gnuplot with
>>    qt->socket.connectToServer(server);
>> 
>> 
>>  without the above patch ()
>>  qt_safe_socket(PF_UNIX, SOCK_STREAM, 0, O_NONBLOCK)))
>>  gnuplot cannot connect with gnuplot_qt.
>> 
>>  with the above patch ()
>>  qt_safe_socket(PF_UNIX, SOCK_STREAM, 0))
>>  gnuplot can connect with gnuplot_qt.
>> 
>>  Perhaps qt with O_NONBLOCK is some wrong with process connection.
> 
> Hi Tatsuro,
> For the record, what Enrico supplied is what we'd call an STC, a Simple Test 
> 
> Case.  Unfortunately his STC dealt with select() on a named pipe.
> 
> Your gnuplot issue has to do with "Unix sockets", a form of IPC 
> between 
> processes.  Cygwin uses Windows named pipes to implement "Unix 
> sockets" on 
> Windows.  This means we are mapping Unix/Linux socket constructs onto a 
> dissimilar feature of Windows, and there are many opportunities for mismatch.
> 
> Can you run your gnuplot under strace?  You would set up your environment as 
> needed to reproduce the issue, then launch gnuplot as so:
>      strace -o gnuplot.trace gnuplot
> This will create a trace file of Cygwin syscalls and operations.  Let us know 
> how big (how many lines) are in the trace file and we'll see what's 
> next.
> 
> ..mark
> 

I send xz commpress gnuplot.trace.

Tatsuro

Attachment: gnuplot.trace.tar.xz
Description: application/xz

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple