public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Ken Brown <kbrown@cornell.edu>
To: sten.kristian.ivarsson@gmail.com, cygwin@cygwin.com
Subject: Re: AF_UNIX/SOCK_DGRAM is dropping messages
Date: Thu, 1 Apr 2021 12:02:02 -0400	[thread overview]
Message-ID: <7c21a430-9609-7fd4-1a02-8b7c1978d2f8@cornell.edu> (raw)
In-Reply-To: <3346cd1c-b93f-83c4-ff26-553ac95ec692@cornell.edu>

n 3/31/2021 11:07 AM, Ken Brown via Cygwin wrote:
> On 3/31/2021 4:24 AM, sten.kristian.ivarsson@gmail.com wrote:
>> [snip]
>>>>>> Using AF_UNIX/SOCK_DGRAM with current version (3.2.0) seems to drop
>>>>>> messages or at least they are not received in the same order they
>>>>>> are  sent
>>
>> [snip]
>>
>>> Thanks for the test case.  I can confirm the problem.  I'm not familiar enough
>>> with the current AF_UNIX implementation to debug this easily.  I'd rather
>>> spend my time on the new implementation (on the topic/af_unix branch).  It
>>> turns out that your test case fails there too, but in a completely different 
>>> way,
>>> due to a bug in sendto for datagrams.  I'll see if I can fix that bug and 
>>> then try
>>> again.
>>>
>>> Ken
>>
>> Ok, too bad it wasn't our own code base but good that the "mystery" is verified
>>
>> I finally succeed to build topic/af_unix (after finding out what version of 
>> zlib was needed), but not with -D__WITH_AF_UNIX to CXXFLAGS though and thus I 
>> haven’t tested it yet
>>
>> Is it sufficient to add the define to the "main" Makefile or do you have to 
>> add it to all the Makefile:s ? I guess I can find out though
> 
> I do it on the configure line, like this:
> 
>   ../af_unix/configure CXXFLAGS="-g -O0 -D__WITH_AF_UNIX" --prefix=...
> 
>> Is topic/af_unix fairly up to date with master branch ?
> 
> Yes, I periodically cherry-pick commits from master to topic/af_unix.  I'lldo 
> that again right now.
> 
>> Either way, I'll be glad to help out testing topic/af_unix
> 
> Thanks!

I've now pushed a fix for that sendto bug, and your test case runs without error 
on the topic/af_unix branch.

By the way, I think the implementation of sendto/recv for datagrams is very 
inefficient when there are repeated calls to sendto as in your test case. 
Nevertheless, your test case actually runs slightly faster on the topic/af_unix 
branch than it does on master (when the latter succeeds, which it does about 
half the time for me).  So I'm not sure whether it's worth worrying about this.

Here's the issue, briefly.  The communication is done via a Windows named pipe. 
  The receiver creates the pipe when it creates and binds its socket.  It 
creates only one pipe instance.  The sender connects to the pipe, writes, and 
closes its handle.  But the pipe is not available for another sender to connect 
to until the receiver reads the message, after which it disconnects the sender.

Ken

  reply	other threads:[~2021-04-01 16:02 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-23 15:37 sten.kristian.ivarsson
2021-03-23 19:20 ` Glenn Strauss
2021-03-24  9:18   ` sten.kristian.ivarsson
2021-03-30 14:17     ` Ken Brown
2021-03-31  8:24       ` sten.kristian.ivarsson
2021-03-31 15:07         ` Ken Brown
2021-04-01 16:02           ` Ken Brown [this message]
2021-04-06  7:52             ` Noel Grandin
2021-04-06 14:59               ` Ken Brown
2021-04-06 14:50             ` sten.kristian.ivarsson
2021-04-06 15:24               ` Ken Brown
2021-04-07 14:56               ` Ken Brown
2021-04-08  8:37                 ` sten.kristian.ivarsson
2021-04-08 19:47                   ` sten.kristian.ivarsson
2021-04-08 21:02                     ` Ken Brown
2021-04-13 14:06                 ` sten.kristian.ivarsson
2021-04-13 14:47                   ` Ken Brown
2021-04-13 22:43                     ` Ken Brown
2021-04-14 15:53                       ` Ken Brown
2021-04-14 17:14                       ` sten.kristian.ivarsson
2021-04-14 21:58                         ` Ken Brown
2021-04-15 13:15                           ` sten.kristian.ivarsson
2021-04-15 15:01                             ` Ken Brown
2021-04-27 14:56                               ` Ken Brown
2021-04-28  7:15                                 ` sten.kristian.ivarsson
2021-08-12 12:56                                   ` sten.kristian.ivarsson
2021-08-13 11:19                                     ` Ken Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7c21a430-9609-7fd4-1a02-8b7c1978d2f8@cornell.edu \
    --to=kbrown@cornell.edu \
    --cc=cygwin@cygwin.com \
    --cc=sten.kristian.ivarsson@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).