[Bug 17195] Multiple applications and games need support for named pipe message mode (NamedPipe datagrams need to be _really_ datagrams)

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Mar 26 14:01:28 CDT 2017


https://bugs.winehq.org/show_bug.cgi?id=17195

--- Comment #181 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to winetest from comment #179)
> Well wine-staging has includded a series of patches related to this who
> knows how long alredy. So it's actually fixed in staging,

 ah.... from what i remember, the patches that adam wrote are based
 on a very special, unique and specific feature of the linux kernel's
 TCP/IP stack.
 in other words, they're completely non-portable.  meaning: FreeBSD
 and other OSes which did not have that specific feature.

 however... reviewing what he wrote very quickly i'm not seeing any
 evidence of the use of TCP/IP so that could have just been an idea
 that (fortunately!) wasn't used.

> but the patches
> arent merged in upstream. Can't say about the correctness of the patches.

 from a quick scan i'm seeing that there's only been one extra test added,
 which does *not* include the absolutely critical multi-thread-reader
 and multi-thread-writer tests that i created which demonstrated the
 correctness of the (excruciatingly-slow-and-brain-dead) prototype patches
 many years ago.

 i cannot emphasise enough how important it is to double-check that the
 race conditions of multi-threaded readers, multi-threaded writers
 *and* multithreaded simultaneous readers-and-writers all pass.

 this really is an incredibly obscure and deceptively complex scenario
 which is why it's been left for such a long time.  i understood it
 well at the time but couldn't possibly describe it now without spending
 significant time on it.

> But I have pretty much deep trust in Slackner's work.

 that's a very good sign.  i do have to say though that this particular
 scenario is about as complex as the threading library implementation
 that had to go into wine (which is identical to that of the freedce
 threading implementation which i'm also familiar with), and it has _that_
 much of a low-level impact, not least because it's part of the
 MSRPC infrastructure (NamedPipes *are* the means by which MSRPC
 communicates).

 so if you get this wrong you *can't even start up wine* which is as
 good a test as any... *but*... because wineserver is single-threaded
 it's very very deceptive (i.e. insufficient).  i recall suggesting
 adding (and using) a separate implementation of ncalrpc as a means
 to bypass this limitation, so that at least the WINREG and other
 critical infrastructure on which the tests rely can get up and
 running... but anyway.

 so, trust is great... but i would strongly suggest adding the required
 tests *before* proceeding further.  that gives an objective benchmark
 which everyone can double-check, very easily.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list