Pmmlabs / OpenPeriscope

Unofficial Periscope client
GNU General Public License v2.0
74 stars 30 forks source link

Спорадический баг в standalone варианте #53

Open Vol-2016 opened 7 years ago

Vol-2016 commented 7 years ago

Пока не нашел рецепта воспроизвести, но выглядит так: нажатие одной из "кнопок" в чате - вдруг крешет OpenPeriscope.

(Если что - виндовский crash-dump+лог для одного из случаев сохранил)

Vol-2016 commented 7 years ago

Не рецепт, но может что подскажет: если убрать ffmpegsumo.dll, запустить OpenPeriscope и нажать (в чате или в другом месте) ссылку на видео, после некоторой паузы - креш.

Pmmlabs commented 7 years ago

не, второй случай совсем другой, он связан с тем что не обнаруживается то, что обязательно должно быть. А в первом случае крашится нодовский модуль ws, который отвечает за вебсокеты. у меня это тоже пару раз было, но я не стал разбираться, потому что баг был в коде модуля ws https://github.com/websockets/ws т.е. возможно это из-за того, что я не указал явно версию ws и каждый раз когда делаем npm install подгружается новая версия, а в разных версиях разные баги. Если бы я указал какую нибудь известную стабильную такого бы не было

Vol-2016 commented 7 years ago

версию ws

Привет. Подскажи, где в node_modules смотреть версию ws : node_modules\ws\package.json - "version": "1.1.1"" в последней строчке, - или где ?

Pmmlabs commented 7 years ago

"version": "1.1.0" 5 строчка

Vol-2016 commented 7 years ago

Странно. 1) У меня ведь даже в исходном OpenPeriscope-1.5-windows-x86.zip (распакованном при запуске в temp-папке) - не "1.1.0", а именно "1.1.1", 2) и в свежеполученном после 'npm install' (node-v6.9.1-x86) - тоже "1.1.1"...

И попутно: структура дерева node_modules при 1) и 2) кейсах - здорово не совпадает. Это в порядке вещей? Вроде и там и там все работает (разве что при 2) - креша пока не наблюдалось...)

В общем, посмотри аттач, там 1) и 2).


Что за фигня - не берет ZIP (80 kb), ни драгдропом, ни выбором файла, ни копированием :-(


https://cloud.mail.ru/public/3KJg/NtS374WbR


[UPD] При 2) - тоже креш, только что понаблюдал.

Pmmlabs commented 7 years ago

а, ну значит npm берет не из master ветки гитхаба. Я просто зашел на страничку репозитория и посмотрел. структура должна быть одинаковая, я же собираю как - делаю npm install, и пакую все файлы, в том числе node_modules, в zip архив, и склеиваю с бинарником nw, т.е. я никуда ничего не перемещаю перед паковкой. Структура различается, да, во втором случае почему-то зависимости ws лежат рядом с самим ws, наверное от версии node зависит, у меня 4 помоему, но не последняя точно. И на работу это не должно влиять

Vol-2016 commented 7 years ago

Все-таки версия ws может как быть, так и не быть причиной креша... Выше я уже привлекал внимание к ffmpegsumo.dll, с ней есть непонятки. Для наглядности - вот папки OpenPeriscope и nwjs-0.12.3 у меня на Win7 :

op_nwjs-0123

В общей папке сведены два варианта OpenPeriscope: "упакованный" - это OpenPeriscope.exe вместе с nw.pack , icudtl.dat и ffmpegsumo.dll, "распакованный" - это nw.exe (из nwjs-v0.12.3-win-ia32.zip) вместе с папкой package.nw и теми же nw.pack , icudtl.dat и ffmpegsumo.dll, с общими для обоих вариантов папками userdata, userdata-2, userdata-3 и locales. "Распакованный" обновляется в папку package.nw, "упакованный" - в package.zip с последующим [copy /b nw.exe+package.zip OpenPeriscope.exe].

Pmmlabs commented 7 years ago

Если ты намекаешь, что причина в каких-то отсутствующих файлах, то ты ошибаешься. В случае с ffmpegsumo.dll из-за отсутствующего файла функционал вообще не работал, тут же он работает, но падает из за некоторой конкретной ошибки

Vol-2016 commented 7 years ago

я еще не дописал, сейчас отвлекли, но вскоре докончу :)

Vol-2016 commented 7 years ago

Так, продолжаю. Почему у меня под подозрением ffmpegsumo.dll ? А разве ты не потому заменил ffmpegsumo.dll из дистрибутива nwjs-v0.12.3-win-ia32.zip, что c OpenPeriscope она работала паршиво (видео практически не принималось), хотя и лежала рядом, не отсутствовала? Так есть ли гарантия, что найденная и вроде бы работающая версия не содержит и другие, более скрытые баги? (Я, кстати, и сам перепробовал кучу версий ffmpegsumo.dll: с OpenPeriscope половина не пашет).

Что касается отсутствующих файлов. Специально в папку OpenPeriscope положил nw.exe, а не линк на \nwjs\nw.exe : это чтоб тупо убедиться, что отсутствие nwjc.exe, pdf.dll, libGLESv2.dll, libEGL.dll, d3dcompiler_47.dll - не влияет...


Попутно: в инструкции "Using as standalone application" строчка

Download and unpack ffmpeg library to nw.js directory

-- в случае nwjs-0.12.3 вроде лишняя?
ffmpeg.dll же вроде не используется (как и вообще целиком вся папка \nwjs\ ) ?

Pmmlabs commented 7 years ago

Да, это надо поправить, ссылка осталась от предыдущей инструкции для nw > 12, теперь копировать надо ffmpegsumo.dll из дистрибутива Google chrome. Эта библиотека нужна только для декодирования кодека h264, больше ни для чего. А уж на чат тем более не влияет. Описанный баг связан только с модулем ws

Pmmlabs commented 7 years ago

@Vol-2016 удали папку node_modules, замени в package.json "ws": "*" на "ws": "1.1.0", сделай npm install и проверь, будет ли воспроизводиться проблема

Vol-2016 commented 7 years ago

Сделал для unpacked варианта EXE, после install проверил версию ws: теперь да - 1.1.0. Остается ждать - спорадический же :)

Но для полноты и достоверности тестирования - все-таки пришли еще и свой модифицированный вариант EXE, взамен релизному версии 1.6 (чтобы были уже твои node_modules).