[PD-dev] SIGPIPE on iemnet's tcpserver

Antoine Villeret antoine.villeret at gmail.com
Tue Jul 2 20:01:37 CEST 2013


2013/7/2 IOhannes m zmoelnig <zmoelnig at iem.at>

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 2013-07-02 13:39, Antoine Villeret wrote:
> >
> > I realize that with iemnet's version of tcpclient/tcpserver, if two
> > client connect at the same time to server, only on receive data
> > not the other,
>
> that's a different bug, please report it.
>

strangely I cannot reproduce it now, but when it happens i'll report it

(please also report *this* bug in the sourceforge bugtracker for
> "pure-data")
>
> ok, i'll do
sorry, I was thinking pure-data bug tracker was only for pure-data bugs not
for externals ones...

>
> > so I put a timeout to disconnect the client if no answer was
> > received in a certain time and then reconnect
> >
> > i first make this with iemnet's tcpserver and I got a SIGPIPE on
> > the server side (see my previous post) while I got SIGSEGV on the
> > client side, here is the gdb backtrace :
> >
> > [New Thread 0x7fff7bfff700 (LWP 4478)]
> >
> > Program received signal SIGSEGV, Segmentation fault. [Switching to
> > Thread 0x7fffc8ff9700 (LWP 4477)] 0x0000000000472963 in clock_set
> > () (gdb) watchdog: signaling pd...
>
> tip: when running Pd in a debugger, always use "-nrt".
>
> general remark: to get a backtrace, please run "bt" in the debugger
> (after the crash).
>

ok thanks for that, gdb is still a bit confusing for me

>
> > I think in the server side a signal(SIGPIPE, SIG_IGN); could help
> > but I don't know where to put it (in tcpserver.c ? in
> > iemlnet_sender.c or somewhere else ?)
>
> i don't think this is a good solution.
> i would prefer something along the lines of "setsockopt(SO_NOSIGPIPE)"
> and/or "send(..., MSG_NOSIGNAL)" - a solution that does not have
> side-effects on the entire Pd.
>

ok

>
> >
> > also I tested it with the mrpeach's version, it doesn't crash but
> > the GUI hangs gdb doesn't tell anything, it continue to show thread
> > creation and exiting
> >
> > also I'm using iemnet's first because it has a [port( method to
> > change the binding port on the fly and I made a rebinding routing
> > to choose an available port in a certain range both in server and
> > in client side to prenvent connection error if port is still used
> > after a crash for example
> >
> > I don't know how to go further with this, But I really need a
> > reliable server for some project and for now I just have an
> > headache :-) please tell me how i can help fixing this (and please
> > note that I don't know anything on tcp communication...)
>
> btw, my experimental repository for iemnet is at [1].
> i added the MSG_NOSIGNAL flag (currently this is linux only), and the
> server does not crash anymore, but the clients still do.
>

ok thanks I'll check it

best regards
a

>
> fgmasdr
> IOhannes
>
>
>
> [1] https://github.com/umlaeute/pd-iemnet
>
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.12 (GNU/Linux)
> Comment: Using GnuPG with Icedove - http://www.enigmail.net/
>
> iEYEARECAAYFAlHSxSoACgkQkX2Xpv6ydvRiAwCgrn20fLBsSDaDxDODerVSEGiw
> AG0An0u5PY21NryZawi/JdH3U02NOYAe
> =mQ4d
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> Pd-dev mailing list
> Pd-dev at iem.at
> http://lists.puredata.info/listinfo/pd-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20130702/0f8fc3eb/attachment.htm>


More information about the Pd-dev mailing list