kswaldemar / rewind-viewer

Fast match viewer with rewinding support for Russian AI Cup championship series
MIT License
75 stars 23 forks source link

Crash при коннекте #4

Closed Karloid closed 6 years ago

Karloid commented 6 years ago

окружение macOS 10.12.6, cmake version 3.9.5

питоновский клиент:

import RewindClient as rc

client = rc.RewindClient()
client.circle(10, 10, 10, 0xffffff)

client.close()

вывод rewind-viewer'a

./rewindviewer
date       time         ( uptime  ) [ thread name/id ]                   file:line     v|
2017-11-06 18:05:50.632 (   0.000s) [main thread     ]             loguru.hpp:1813     0| arguments: ./rewindviewer
2017-11-06 18:05:50.632 (   0.000s) [main thread     ]             loguru.hpp:1816     0| Current dir: /Users/fox/projects/third_party/rewind-viewer/build
2017-11-06 18:05:50.632 (   0.000s) [main thread     ]             loguru.hpp:1818     0| stderr verbosity: 0
2017-11-06 18:05:50.632 (   0.000s) [main thread     ]             loguru.hpp:1819     0| -----------------------------------
2017-11-06 18:05:50.632 (   0.001s) [main thread     ]             loguru.hpp:1971     0| Logging to 'rewindviewer-debug.log', mode: 'w', verbosity: 9
2017-11-06 18:05:50.632 (   0.001s) [main thread     ]             loguru.hpp:1971     0| Logging to 'rewindviewer.log', mode: 'w', verbosity: 0
2017-11-06 18:05:50.632 (   0.001s) [main thread     ]               main.cpp:29       0| Init GLFW
2017-11-06 18:05:50.655 (   0.024s) [main thread     ]               main.cpp:80       0| Create main window
2017-11-06 18:05:50.732 (   0.100s) [main thread     ]               main.cpp:88       0| Setup application icon
2017-11-06 18:05:50.732 (   0.100s) [main thread     ]               main.cpp:37       0| Load OpenGL functions
2017-11-06 18:05:50.738 (   0.106s) [main thread     ]               main.cpp:43       0| OpenGL 4.1 INTEL-10.25.17, GLSL 4.10
2017-11-06 18:05:50.738 (   0.106s) [main thread     ]               main.cpp:44       0| Driver Intel Inc., Renderer Intel Iris Pro OpenGL Engine
2017-11-06 18:05:50.738 (   0.106s) [main thread     ]               main.cpp:55       0| Setup vertical sync to 60fps
2017-11-06 18:05:50.738 (   0.106s) [main thread     ]               main.cpp:58       0| Start main draw loop
2017-11-06 18:05:50.738 (   0.106s) [main thread     ]               main.cpp:100      0| Create camera
2017-11-06 18:05:50.738 (   0.106s) [main thread     ]               main.cpp:104      0| Create Resource manager
2017-11-06 18:05:50.738 (   0.106s) [main thread     ]               main.cpp:106      0| Create Scene
2017-11-06 18:05:50.738 (   0.106s) [main thread     ]              Scene.cpp:54       0| Initialize needed attributes
2017-11-06 18:05:50.738 (   0.106s) [main thread     ]              Scene.cpp:60       0| Compile shaders
2017-11-06 18:05:50.738 (   0.106s) [main thread     ]             Shader.cpp:87       0| Start compiling shader: vertex=resources/shaders/simple.vert, fragment=resources/shaders/uniform_color.frag
2017-11-06 18:05:50.738 (   0.106s) [main thread     ]             Shader.cpp:88       0| Load Vertex shader
2017-11-06 18:05:50.738 (   0.106s) [main thread     ]             Shader.cpp:90       0| Load Fragment shader
2017-11-06 18:05:50.738 (   0.106s) [main thread     ]             Shader.cpp:93       0| Compile Vertex shader
2017-11-06 18:05:50.741 (   0.109s) [main thread     ]             Shader.cpp:95       0| Compile Fragment shader
2017-11-06 18:05:50.741 (   0.109s) [main thread     ]             Shader.cpp:98       0| Link shader program
2017-11-06 18:05:50.752 (   0.121s) [main thread     ]             Shader.cpp:87       0| Start compiling shader: vertex=resources/shaders/circle.vert, fragment=resources/shaders/circle.frag
2017-11-06 18:05:50.753 (   0.121s) [main thread     ]             Shader.cpp:88       0| Load Vertex shader
2017-11-06 18:05:50.753 (   0.121s) [main thread     ]             Shader.cpp:90       0| Load Fragment shader
2017-11-06 18:05:50.753 (   0.121s) [main thread     ]             Shader.cpp:93       0| Compile Vertex shader
2017-11-06 18:05:50.754 (   0.122s) [main thread     ]             Shader.cpp:95       0| Compile Fragment shader
2017-11-06 18:05:50.754 (   0.122s) [main thread     ]             Shader.cpp:98       0| Link shader program
2017-11-06 18:05:50.755 (   0.123s) [main thread     ]             Shader.cpp:87       0| Start compiling shader: vertex=resources/shaders/lines.vert, fragment=resources/shaders/lines.frag
2017-11-06 18:05:50.755 (   0.123s) [main thread     ]             Shader.cpp:88       0| Load Vertex shader
2017-11-06 18:05:50.755 (   0.123s) [main thread     ]             Shader.cpp:90       0| Load Fragment shader
2017-11-06 18:05:50.755 (   0.123s) [main thread     ]             Shader.cpp:93       0| Compile Vertex shader
2017-11-06 18:05:50.756 (   0.124s) [main thread     ]             Shader.cpp:95       0| Compile Fragment shader
2017-11-06 18:05:50.756 (   0.124s) [main thread     ]             Shader.cpp:98       0| Link shader program
2017-11-06 18:05:50.756 (   0.124s) [main thread     ]             Shader.cpp:87       0| Start compiling shader: vertex=resources/shaders/simple.vert, fragment=resources/shaders/textured.frag
2017-11-06 18:05:50.756 (   0.124s) [main thread     ]             Shader.cpp:88       0| Load Vertex shader
2017-11-06 18:05:50.756 (   0.124s) [main thread     ]             Shader.cpp:90       0| Load Fragment shader
2017-11-06 18:05:50.757 (   0.125s) [main thread     ]             Shader.cpp:93       0| Compile Vertex shader
2017-11-06 18:05:50.758 (   0.126s) [main thread     ]             Shader.cpp:95       0| Compile Fragment shader
2017-11-06 18:05:50.758 (   0.126s) [main thread     ]             Shader.cpp:98       0| Link shader program
2017-11-06 18:05:50.758 (   0.126s) [main thread     ]              Scene.cpp:64       0| Load background texture
2017-11-06 18:05:50.777 (   0.145s) [main thread     ]              Scene.cpp:68       0| Load unit textures
2017-11-06 18:05:50.780 (   0.148s) [main thread     ]              Scene.cpp:72       0| Create rectangle for future rendering
2017-11-06 18:05:50.780 (   0.148s) [main thread     ]              Scene.cpp:96       0| Create Uniform buffer
2017-11-06 18:05:50.780 (   0.148s) [main thread     ]              Scene.cpp:104      0| Bind Uniform buffer to shaders
2017-11-06 18:05:50.780 (   0.148s) [main thread     ]               main.cpp:108      0| Create GUI controller
2017-11-06 18:05:50.805 (   0.173s) [main thread     ]               main.cpp:112      0| Start networking thread
2017-11-06 18:05:50.805 (   0.173s) [main thread     ]               main.cpp:123      0| Start render loop
2017-11-06 18:05:50.805 (   0.173s) [         1521AFF]        NetListener.cpp:28       0| NetClient:: Start listening
libc++abi.dylib: terminating with uncaught exception of type std::runtime_error: Accept on socket returned NULL. errno=57

Loguru caught a signal: SIGABRT
Stack trace:
13      0x7fffdcbbe08d thread_start + 13
12      0x7fffdcbbe887 _pthread_body + 0
11      0x7fffdcbbe93b _pthread_body + 180
10         0x10b4ef085 void* std::__thread_proxy<std::tuple<std::unique_ptr<std::__thread_struct, std::default_delete<std::__thread_struct> >, prepare_and_run_game_loop(GLFWwindow*)::$_1> >(void*) + 517
9          0x10b4ef328 prepare_and_run_game_loop(GLFWwindow*)::$_1::operator()() const + 24
8          0x10b509d18 NetListener::run() + 328
7       0x7fffdb5ae7be __cxxabiv1::exception_cleanup_func(_Unwind_Reason_Code, _Unwind_Exception*) + 0
6       0x7fffdb5aed49 std::__terminate(void (*)()) + 8
5       0x7fffdc0c1713 _objc_terminate() + 124
4       0x7fffdb5b1c17 default_terminate_handler() + 243
3       0x7fffdb58c94a __cxa_bad_cast + 0
2       0x7fffdca39420 abort + 129
1          0x4e58a6240 5   ???                                 0x00000004e58a6240 0x0 + 21030920768
0       0x7fffdcbb4b3a _sigtramp + 26
2017-11-06 18:05:55.682 (   5.050s) [         1521AFF]                       :0     FATL| Signal: SIGABRT
kswaldemar commented 6 years ago

Добавил обработку исключения, больше не должен падать. Сама ошибка Accept on socket returned NULL. errno=57 очень странная, так как произошла после accept на сокете, но судя по документации http://man7.org/linux/man-pages/man2/accept.2.html это не валидный код ошибки. Возможно нужна еще какая-то библиотека для линковки с csimplesocket