gnaudio / jabra-node-sdk

Jabra Node.Js SDK based on N-API
https://www.npmjs.com/package/@gnaudio/jabra-node-sdk
MIT License
0 stars 1 forks source link

Some crashes on Windows Electron app caused by "libjabra" dll #24

Closed aabuhijleh closed 4 years ago

aabuhijleh commented 4 years ago

Looking at our crash data, I noticed some crashes related to jabra

I'm using jabra-node-sdk v2.0.0 in a 32-bit Windows application

Can you please supply the symbols (.pdb files) for your binaries included in the npm package so we can get a good stack trace to help you resolve these issues?

image

Crash dump data

``` DBGHELP: libjabra - no symbols loaded ExceptionAddress: 0bdeb891 (libjabra+0x000bb891) ExceptionCode: c0000005 (Access violation) ExceptionFlags: 00000000 NumberParameters: 2 Parameter[0]: 00000000 Parameter[1]: 00000a08 Attempt to read from address 00000a08 eax=00000000 ebx=00000002 ecx=00000000 edx=0068d898 esi=00000000 edi=0e277ae0 eip=0bdeb891 esp=0f5af388 ebp=0f5af398 iopl=0 nv up ei pl zr na pe nc cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010246 libjabra+0xbb891: 0bdeb891 8bbe080a0000 mov edi,dword ptr [esi+0A08h] ds:002b:00000a08=???????? *** Stack trace for last set context - .thread/.cxr resets it ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0f5af398 0bdde0e1 libjabra+0xbb891 0f5af3b4 0bde18f4 libjabra+0xae0e1 0f5af408 0bde2093 libjabra+0xb18f4 0f5af420 0bdb3e80 libjabra+0xb2093 0f5af454 0bd59ff8 libjabra+0x83e80 SYMSRV: BYINDEX: 0x16 z:\ossymbols*http://symproxyelb-371495734.us-east-1.elb.amazonaws.com/symbols sdkintegration.node 5E30444Bd7000 SYMSRV: UNC: z:\ossymbols\sdkintegration.node\5E30444Bd7000\sdkintegration.node - path not found SYMSRV: UNC: z:\ossymbols\sdkintegration.node\5E30444Bd7000\sdkintegration.nod_ - path not found SYMSRV: UNC: z:\ossymbols\sdkintegration.node\5E30444Bd7000\file.ptr - path not found SYMSRV: HTTPGET: /symbols/sd/sdkintegration.node/5E30444Bd7000/sdkintegration.node SYMSRV: HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND SYMSRV: HTTPGET: /symbols/sd/sdkintegration.node/5E30444Bd7000/sdkintegration.nod_ SYMSRV: HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND SYMSRV: HTTPGET: /symbols/sd/sdkintegration.node/5E30444Bd7000/file.ptr SYMSRV: HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND SYMSRV: RESULT: 0x80190194 SYMSRV: BYINDEX: 0x17 z:\symbolservers\rainbow_electron\rainbow_prod-6.1.7 sdkintegration.node 5E30444Bd7000 SYMSRV: PATH: z:\symbolservers\rainbow_electron\rainbow_prod-6.1.7\sdkintegration.node\5E30444Bd7000\sdkintegration.node SYMSRV: RESULT: 0x00000000 DBGHELP: z:\symbolservers\rainbow_electron\rainbow_prod-6.1.7\sdkintegration.node\5E30444Bd7000\sdkintegration.node - OK DBGENG: z:\symbolservers\rainbow_electron\rainbow_prod-6.1.7\sdkintegration.node\5E30444Bd7000\sdkintegration.node - Mapped image memory 0f5af540 0bd59e8f libjabra+0x29ff8 SYMSRV: BYINDEX: 0x18 z:\ossymbols*http://symproxyelb-371495734.us-east-1.elb.amazonaws.com/symbols node_sqlite3.node 5E30447710d000 SYMSRV: UNC: z:\ossymbols\node_sqlite3.node\5E30447710d000\node_sqlite3.node - path not found SYMSRV: UNC: z:\ossymbols\node_sqlite3.node\5E30447710d000\node_sqlite3.nod_ - path not found SYMSRV: UNC: z:\ossymbols\node_sqlite3.node\5E30447710d000\file.ptr - path not found SYMSRV: HTTPGET: /symbols/no/node_sqlite3.node/5E30447710d000/node_sqlite3.node SYMSRV: HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND SYMSRV: HTTPGET: /symbols/no/node_sqlite3.node/5E30447710d000/node_sqlite3.nod_ SYMSRV: HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND SYMSRV: HTTPGET: /symbols/no/node_sqlite3.node/5E30447710d000/file.ptr SYMSRV: HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND SYMSRV: RESULT: 0x80190194 SYMSRV: BYINDEX: 0x19 z:\symbolservers\rainbow_electron\rainbow_prod-6.1.7 node_sqlite3.node 5E30447710d000 SYMSRV: PATH: z:\symbolservers\rainbow_electron\rainbow_prod-6.1.7\node_sqlite3.node\5E30447710d000\node_sqlite3.node SYMSRV: RESULT: 0x00000000 DBGHELP: z:\symbolservers\rainbow_electron\rainbow_prod-6.1.7\node_sqlite3.node\5E30447710d000\node_sqlite3.node - OK DBGENG: z:\symbolservers\rainbow_electron\rainbow_prod-6.1.7\node_sqlite3.node\5E30447710d000\node_sqlite3.node - Mapped image memory SYMSRV: BYINDEX: 0x1A z:\ossymbols*http://symproxyelb-371495734.us-east-1.elb.amazonaws.com/symbols sdkintegration.pdb A73A832FCE6C45649A6FCE1189A7E24F1 SYMSRV: UNC: z:\ossymbols\sdkintegration.pdb\A73A832FCE6C45649A6FCE1189A7E24F1\sdkintegration.pdb - path not found SYMSRV: UNC: z:\ossymbols\sdkintegration.pdb\A73A832FCE6C45649A6FCE1189A7E24F1\sdkintegration.pd_ - path not found SYMSRV: UNC: z:\ossymbols\sdkintegration.pdb\A73A832FCE6C45649A6FCE1189A7E24F1\file.ptr - path not found SYMSRV: HTTPGET: /symbols/sd/sdkintegration.pdb/A73A832FCE6C45649A6FCE1189A7E24F1/sdkintegration.pdb SYMSRV: HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND SYMSRV: HTTPGET: /symbols/sd/sdkintegration.pdb/A73A832FCE6C45649A6FCE1189A7E24F1/sdkintegration.pd_ SYMSRV: HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND SYMSRV: HTTPGET: /symbols/sd/sdkintegration.pdb/A73A832FCE6C45649A6FCE1189A7E24F1/file.ptr SYMSRV: HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND SYMSRV: RESULT: 0x80190194 SYMSRV: BYINDEX: 0x1B z:\symbolservers\rainbow_electron\rainbow_prod-6.1.7 sdkintegration.pdb A73A832FCE6C45649A6FCE1189A7E24F1 SYMSRV: PATH: z:\symbolservers\rainbow_electron\rainbow_prod-6.1.7\sdkintegration.pdb\A73A832FCE6C45649A6FCE1189A7E24F1\sdkintegration.pdb SYMSRV: RESULT: 0x00000000 *** WARNING: Unable to verify checksum for sdkintegration.node DBGHELP: sdkintegration - private symbols & lines z:\symbolservers\rainbow_electron\rainbow_prod-6.1.7\sdkintegration.pdb\A73A832FCE6C45649A6FCE1189A7E24F1\sdkintegration.pdb 0f5af5e0 0badcb31 libjabra+0x29e8f (Inline) -------- sdkintegration!napi_SetRinger::__l2::::operator()+0xb [c:\jenkins-slave\workspace\desktop-v2\rb-services\node_modules\@gnaudio\jabra-node-sdk\src\main\device.cc @ 94] (Inline) -------- sdkintegration!std::_Invoker_functor::_Call+0x14 [c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits @ 1375] (Inline) -------- sdkintegration!std::invoke+0x14 [c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits @ 1443] (Inline) -------- sdkintegration!std::_Invoke_ret+0x14 [c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits @ 1461] 0f5af628 0bac94e6 sdkintegration!std::_Func_impl<,std::allocator,void,unsigned short,bool>::_Do_call(unsigned short * <_Args_0> = 0x0f5af63c, bool * <_Args_1> = 0x0f5af638)+0x31 [c:\program files (x86)\microsoft visual studio 14.0\vc\include\functional @ 212] (Inline) -------- sdkintegration!std::_Func_class::operator()+0x19 [c:\program files (x86)\microsoft visual studio 14.0\vc\include\functional @ 279] (Inline) -------- sdkintegration!std::_Invoker_functor::_Call+0x23 [c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits @ 1375] (Inline) -------- sdkintegration!std::invoke+0x23 [c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits @ 1443] (Inline) -------- sdkintegration!std::_Invoke_ret+0x23 [c:\program files (x86)\microsoft visual studio 14.0\vc\include\type_traits @ 1475] (Inline) -------- sdkintegration!std::_Call_binder+0x23 [c:\program files (x86)\microsoft visual studio 14.0\vc\include\functional @ 825] (Inline) -------- sdkintegration!std::_Binder::operator()+0x11 [c:\program files (x86)\microsoft visual studio 14.0\vc\include\functional @ 279] 0f5af81c 0baa4290 sdkintegration!util::JAsyncWorker::Execute(void)+0x117 [c:\jenkins-slave\workspace\desktop-v2\rb-services\node_modules\@gnaudio\jabra-node-sdk\src\main\napiutil.h @ 404] DBGENG: Rainbow.exe - Partial symbol image load missing image info DBGHELP: Module is not fully loaded into memory. DBGHELP: Searching for symbols using debugger-provided data. SYMSRV: BYINDEX: 0x1C z:\ossymbols*http://symproxyelb-371495734.us-east-1.elb.amazonaws.com/symbols electron.exe.pdb 28BD83B40697ABF54C4C44205044422E1 SYMSRV: UNC: z:\ossymbols\electron.exe.pdb\28BD83B40697ABF54C4C44205044422E1\electron.exe.pdb - path not found SYMSRV: UNC: z:\ossymbols\electron.exe.pdb\28BD83B40697ABF54C4C44205044422E1\electron.exe.pd_ - path not found SYMSRV: UNC: z:\ossymbols\electron.exe.pdb\28BD83B40697ABF54C4C44205044422E1\file.ptr - path not found SYMSRV: HTTPGET: /symbols/el/electron.exe.pdb/28BD83B40697ABF54C4C44205044422E1/electron.exe.pdb SYMSRV: HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND SYMSRV: HTTPGET: /symbols/el/electron.exe.pdb/28BD83B40697ABF54C4C44205044422E1/electron.exe.pd_ SYMSRV: HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND SYMSRV: HTTPGET: /symbols/el/electron.exe.pdb/28BD83B40697ABF54C4C44205044422E1/file.ptr SYMSRV: HttpQueryInfo: 80190194 - HTTP_STATUS_NOT_FOUND SYMSRV: RESULT: 0x80190194 SYMSRV: BYINDEX: 0x1D z:\symbolservers\rainbow_electron\rainbow_prod-6.1.7 electron.exe.pdb 28BD83B40697ABF54C4C44205044422E1 SYMSRV: UNC: z:\symbolservers\rainbow_electron\rainbow_prod-6.1.7\electron.exe.pdb\28BD83B40697ABF54C4C44205044422E1\electron.exe.pdb - path not found SYMSRV: UNC: z:\symbolservers\rainbow_electron\rainbow_prod-6.1.7\electron.exe.pdb\28BD83B40697ABF54C4C44205044422E1\electron.exe.pd_ - path not found SYMSRV: UNC: z:\symbolservers\rainbow_electron\rainbow_prod-6.1.7\electron.exe.pdb\28BD83B40697ABF54C4C44205044422E1\file.ptr - path not found SYMSRV: RESULT: 0x80070003 SYMSRV: BYINDEX: 0x1E z:\symbolservers\electron*https://electron-symbols.githubapp.com electron.exe.pdb 28BD83B40697ABF54C4C44205044422E1 SYMSRV: PATH: z:\symbolservers\electron\electron.exe.pdb\28BD83B40697ABF54C4C44205044422E1\electron.exe.pdb SYMSRV: RESULT: 0x00000000 *** WARNING: Unable to verify timestamp for Rainbow.exe DBGHELP: Rainbow - private symbols & lines z:\symbolservers\electron\electron.exe.pdb\28BD83B40697ABF54C4C44205044422E1\electron.exe.pdb 0f5af86c 04e5414c sdkintegration!Napi::AsyncWorker::OnExecute(struct napi_env__ * __formal = 0x0a8e2f30, void * this_pointer = 0x1355f448)+0x40 [c:\jenkins-slave\workspace\desktop-v2\rb-services\node_modules\node-addon-api\napi-inl.h @ 3723] 0f5af87c 049363fd Rainbow!`anonymous namespace'::uvimpl::Work::DoThreadPoolWork(void)+0xc [C:\projects\src\third_party\electron_node\src\node_api.cc @ 865] 0f5af888 04936608 Rainbow!uv__queue_work(struct uv__work * w = 0x10f1f2a0)+0xd [C:\projects\src\third_party\electron_node\deps\uv\src\threadpool.c @ 321] 0f5af8a4 03eaae60 Rainbow!worker(void * arg = )+0xe8 [C:\projects\src\third_party\electron_node\deps\uv\src\threadpool.c @ 122] 0f5af8bc 05485838 Rainbow!uv__thread_start(void * arg = 0x0aebe298)+0x40 [C:\projects\src\third_party\electron_node\deps\uv\src\win\thread.c @ 108] SYMSRV: BYINDEX: 0x1F z:\ossymbols*http://symproxyelb-371495734.us-east-1.elb.amazonaws.com/symbols wkernel32.pdb B91340B043A34C5EAEE3C21EDC192CF62 SYMSRV: PATH: z:\ossymbols\wkernel32.pdb\B91340B043A34C5EAEE3C21EDC192CF62\wkernel32.pdb SYMSRV: RESULT: 0x00000000 *** WARNING: Unable to verify checksum for kernel32.dll DBGHELP: kernel32 - public symbols z:\ossymbols\wkernel32.pdb\B91340B043A34C5EAEE3C21EDC192CF62\wkernel32.pdb 0f5af8f4 76d7343d Rainbow!thread_start

ghost commented 4 years ago

Some questions:

aabuhijleh commented 4 years ago

@extmchristensen to answer your questions:

aabuhijleh commented 4 years ago

@extvpadmanabhan can you share when v3-beta is expected to become a stable release?

I'm noticing more and more of these "libjabra" crashes.

ghost commented 4 years ago

Very soon - for Windows at least. Stay tuned on this github site for news.

aabuhijleh commented 4 years ago

Ok thanks. Also, will sharing your symbols (to get good stack traces) help you in resolving these issues, if they occur in the future?

ghost commented 4 years ago

I don't think sharing a full PDB file is an option for typical closed source projects like the included C-SDK binaries. If only we could produce good stack traces without also enabling debugging and without revealing much of the internals.

aabuhijleh commented 4 years ago

I see, I think it's possible for me to give you crash dumps and maybe you can figure out a way to produce good stack traces internally (because you should have the symbols).

Also, unrelated note, can you please sign your binaries? I think some anti viruses have issues with unsigned binaries.

ghost commented 4 years ago

Please add the unrelated note as a new issue with a concrete specification (e.g. screen dump) of what the anti virus program reports if the jabra binary is unsigned.

0xW1sKy commented 4 years ago

Yo. I have an active instance of this happening to me while using jabra direct. Luckily stumbled on this while troubleshooting. I'll be your guinea pig if you need one. Would love to see whatever this issue is get resolved because its making my headset unusable 😭

jabra-crash

aabuhijleh commented 4 years ago

On my side, I've upgraded the package to v3. Will see how it goes in the coming days/weeks.

Thanks @0xW1sKy, can you please share your setup (steps to reproduce, jabra device, OS version)?

aabuhijleh commented 4 years ago

The problem seems to be fixed by using v3 of the sdk.