Эмуляция ввода с джойстика через числовой ввод

Процесс блокируется мьютексом (или фьютексом в языке Linux). Так что отставание в порядке, мы буквально застряли за системным вызовом, и, хотя соединения разрываются, больше ничего не обновляется.

В будущем для ссылки на другие, обнаружившие этот вопрос, это была команда прорыва:

# strace -p 5340
Process 5340 attached
futex(0x223cee0, FUTEX_WAIT_PRIVATE, 0, NULL

Итак, есть какая-то тупиковая ситуация, и теперь мне нужно только выяснить, какой процесс использует мьютексы. gdb в конце концов дал мне эту информацию:

(gdb) bt
#0  sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:85
#1  0x00007f0ecc982068 in PyThread_acquire_lock () from /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0
#2  0x00007f0ecd037b29 in gil_real_get () from /usr/lib/uwsgi/plugins/python_plugin.so
#3  0x00007f0ecd030167 in uwsgi_python_master_fixup () from /usr/lib/uwsgi/plugins/python_plugin.so
#4  0x000000000042cb66 in uwsgi_respawn_worker ()
#5  0x000000000042b38f in master_loop ()
#6  0x000000000046741e in uwsgi_run ()
#7  0x000000000041698e in main ()

Итак, какая-то тупиковая ситуация при попытке получить глобальную блокировку интерпретатора.

Edit 2 : сюжет становится более толстым. Почти та же проблема, что и этот парень , за исключением того, что наша проблема связана с RabbitMQ, а не с MongoDB. Запуск второго потока вызывает проблемы во время перезагрузки, иногда из-за того, что GIL не освобождается, а затем зависает при попытке его повторного получения.

По сути, мы делаем то, чего делать не должны, и нам просто нужно все это переосмыслить.

3
18.06.2016, 17:13
0 ответов

Теги

Похожие вопросы