2013/7/2 IOhannes m zmoelnig <zmoelnig@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

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@iem.at
http://lists.puredata.info/listinfo/pd-dev