| Anonymous | Login | Signup for a new account | 2010-09-08 00:01 CEST | ![]() |
| Main | My View | View Issues |
| View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | |||||
| ID | Project | Category | View Status | Date Submitted | Last Update | |
| 0000101 | OpenClonk | Engine - Network | public | 2010-01-19 17:37 | 2010-02-02 17:45 | |
| Reporter | Ape | |||||
| Assigned To | Clonk-Karl | |||||
| Priority | normal | Severity | crash | Reproducibility | always | |
| Status | resolved | Resolution | fixed | |||
| Platform | OS | OS Version | ||||
| Product Version | Mercurial tip | |||||
| Fixed in Version | ||||||
| Summary | 0000101: Assertion failed when joining to network game or when someone joins your game | |||||
| Description | When I join network game or somebody joins my network game the game crashes with assertion fail: clonk: openclonk/src/network/C4NetIO.cpp:538: virtual bool C4NetIOTCP::Execute(int, pollfd*): Assertion `fds[cfd].fd == sock' failed. clonk: openclonk/src/network/C4NetIO.cpp:590: virtual bool C4NetIOTCP::Execute(int, pollfd*): Assertion `fds[cfd].fd == sock' failed. If I comment the assertions the game works nicely. See the attachment for a hacky patch. | |||||
| Additional Information | I am using: Arch Linux, cmake, and GCC 4.4.2 | |||||
| Tags | No tags attached. | |||||
| Attached Files | diff -r 2da35b255902 src/network/C4NetIO.cpp --- a/src/network/C4NetIO.cpp Sun Jan 17 22:10:13 2010 -0800 +++ b/src/network/C4NetIO.cpp Tue Jan 19 17:20:04 2010 +0200 @@ -535,7 +535,7 @@ #else // something to read from socket? ++cfd; - assert(fds[cfd].fd == sock); + //assert(fds[cfd].fd == sock); if(POLLIN & fds[cfd].revents) #endif for(;;) @@ -587,7 +587,7 @@ #ifdef STDSCHEDULER_USE_EVENTS if(wsaEvents.lNetworkEvents & FD_WRITE) #else - assert(fds[cfd].fd == sock); + //assert(fds[cfd].fd == sock); if(POLLOUT & fds[cfd].revents) #endif // send remaining data | |||||
Notes |
|
|
(0000205) Ape (reporter) 2010-01-21 16:41 |
I also found a new assertion fail that occurred during network game and maybe related to these. clonk: /home/ape/pelit/openclonk/src/network/C4NetIO.cpp:483: virtual bool C4NetIOTCP::Execute(int, pollfd*): Assertion `fds[cfd].fd == pWait->sock' failed. |
|
(0000209) Randrian (developer) 2010-01-23 20:18 |
Hmm well, I have the same problem. I commented them out and it seemed to work. But I think there is a reason for these assertions and it shouldn't be a good thing to just comment them out. |
|
(0000250) Loriel (developer) 2010-02-02 17:36 |
I removed those assertions! I could not see how to guarantee the assumption that those assertions were documenting, so instead of trying to iterate in parallel through the polled events and the lists of sockets, so we use a map to figure out each socket's poll result instead. |
Issue History |
|||
| Date Modified | Username | Field | Change |
| 2010-01-19 17:37 | Ape | New Issue | |
| 2010-01-19 17:37 | Ape | File Added: removeAssertionsC4NetIO.diff | |
| 2010-01-21 16:41 | Ape | Note Added: 0000205 | |
| 2010-01-23 20:18 | Randrian | Note Added: 0000209 | |
| 2010-01-24 14:50 | Newton | Category | Engine => Engine - Network |
| 2010-02-02 17:36 | Loriel | Note Added: 0000250 | |
| 2010-02-02 17:45 | Clonk-Karl | Status | new => resolved |
| 2010-02-02 17:45 | Clonk-Karl | Resolution | open => fixed |
| 2010-02-02 17:45 | Clonk-Karl | Assigned To | => Clonk-Karl |
| Copyright © 2000 - 2010 MantisBT Group |