Anonymous Login
2018-12-15 13:35 UTC

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0001640OpenClonkEngine - Networkpublic2016-06-03 22:22
ReporterLuchs 
Assigned ToLuchs 
PrioritynormalSeveritycrashReproducibilityalways
StatusresolvedResolutionfixed 
PlatformLinuxOSArch LinuxOS Version
Product Version 
Target VersionFixed in Version8.0 
Summary0001640: Pre-built engine crashes due to libupnp
DescriptionThe pre-built engine from the binary download crashes when creating or joining a network game. With a self-built engine, I get UPnP errors, but the game does not crash.

Arch currently packages libupnp 1.6.19 which seems to be exactly the same version as the one in Debian stable, so I don't know where that incompatibility is coming from.

I'd be happy with an option to disable UPnP (which doesn't work here in any case), as the pre-built engine seems to work fine other than that.
Additional InformationLog with pre-built engine (it's not the most recent one):
[23:09:45] Version: 7.0 unix linux-x86_64 (c54d917f7e85)
[...]
[23:10:31] Network: Creating savegame...
[23:10:31] Registering game at league.openclonk.org...
[23:10:31] Preparing file Luchs.ocp for network...
[23:10:31] Awaiting participants...
7.0 unix: Caught signal SIGSEGV (0x0000000000000000)
./openclonk.bak[0x53b477]
./openclonk.bak[0x53b4f3]
/usr/lib/libpthread.so.0(+0x10d60)[0x7fdd9aeacd60]
/usr/lib/libixml.so.2(ixmlNode_getFirstChild+0x5)[0x7fdd9d56c3df]
./openclonk.bak(_ZN15C4Network2UPnPP15Callback_StaticE16Upnp_EventType_ePvS1_+0x174)[0x53b674]
/usr/lib/libupnp.so.6(UpnpThreadDistribution+0x25d)[0x7fdd9d786d67]
./openclonk.bak[0x81b740]
/usr/lib/libpthread.so.0(+0x74a4)[0x7fdd9aea34a4]
/usr/lib/libc.so.6(clone+0x6d)[0x7fdd9a14313d]

Log with self-built engine:
[23:14:00] Joining game by Luchs...
[23:14:00] Connecting to host on TCP:109.193.248.242:11112, UDP:109.193.248.242:11113, TCP:192.168.0.12:11112, UDP:192.168.0.12:11113...
[23:14:01] UPnP operation u:AddPortMapping failed: UPNP_E_SOCKET_ERROR
[23:14:01] UPnP operation u:AddPortMapping failed: UPNP_E_SOCKET_ERROR
[23:14:06] FATAL ERROR: Could not connect to host Luchs.

Backtrace from gdb:
[23:19:24] Joining game by Luchs...
[New Thread 0x7fffcd411700 (LWP 31816)]
[New Thread 0x7fffccc10700 (LWP 31817)]
[New Thread 0x7fffbfffd700 (LWP 31818)]
[New Thread 0x7fffbf7fc700 (LWP 31819)]
[New Thread 0x7fffbeffb700 (LWP 31820)]
[New Thread 0x7fffbe7fa700 (LWP 31821)]
[New Thread 0x7fffbdff9700 (LWP 31822)]
[New Thread 0x7fffbd7f8700 (LWP 31823)]
[New Thread 0x7fffbcff7700 (LWP 31824)]
[Thread 0x7fffbcff7700 (LWP 31824) exited]
[New Thread 0x7fffbcff7700 (LWP 31825)]
[Thread 0x7fffbcff7700 (LWP 31825) exited]
[New Thread 0x7fffbcff7700 (LWP 31826)]
[23:19:24] Connecting to host on TCP:109.193.248.242:11112, UDP:109.193.248.242:11113, TCP:192.168.0.12:11112, UDP:192.168.0.12:11113...
[New Thread 0x7fffa7fff700 (LWP 31827)]
[New Thread 0x7fffa77fe700 (LWP 31828)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffccc10700 (LWP 31817)]
0x00007ffff51a23df in ixmlNode_getFirstChild () from /usr/lib/libixml.so.2
(gdb) bt
#0 0x00007ffff51a23df in ixmlNode_getFirstChild () from /usr/lib/libixml.so.2
#1 0x000000000053b674 in C4Network2UPnPP::Callback_Static(Upnp_EventType_e, void*, void*) ()
#2 0x00007ffff53bcd67 in UpnpThreadDistribution () from /usr/lib/libupnp.so.6
0000003 0x000000000081b740 in ?? ()
#4 0x00007ffff2ad94a4 in start_thread () from /usr/lib/libpthread.so.0
0000005 0x00007ffff1d7913d in clone () from /usr/lib/libc.so.6
TagsNo tags attached.
Attached Files

-Relationships
+Relationships

-Notes

~0005113

occ (reporter)

Hi! There's been a check-in that references this bug. For more information you can visit the repository browser at this address:
https://git.openclonk.org/openclonk.git/commitdiff/07e8c75bac387df28983d5d47196b7c5fd3c571c

Changeset 07e8c75 by Lukas Werling <lukas.werling@gmail.com>
Replace libupnp with miniupnpc

 - The new code works with my router while libupnp didn't. :)

 - There are some unexplainable crashes in libupnp: 0001640

 - Using miniupnpc seems to be less complex than libupnp.

 - Apparently, miniupnpc also works on Windows, so we may be able to use
   it for all platforms.

Disadvantage: UPnP queries aren't asynchronous anymore, but they seem to
be pretty fast (< 1 s).

~0005114

Luchs (administrator)

I replaced libupnp with miniupnpc, so it can't crash because of libupnp anymore!
+Notes

-Issue History
Date Modified Username Field Change
2016-01-18 22:24 Luchs New Issue
2016-06-03 15:22 occ Note Added: 0005113
2016-06-03 22:22 Luchs Note Added: 0005114
2016-06-03 22:22 Luchs Status new => resolved
2016-06-03 22:22 Luchs Fixed in Version => 8.0
2016-06-03 22:22 Luchs Resolution open => fixed
2016-06-03 22:22 Luchs Assigned To => Luchs
+Issue History