Welcome, Guest. Please Login or Register
FUG-FR logo
 
  HomeHelpSearchLoginRegister  
 
Firefox vs sqlite (Read 2276 times)
David Marec
Senior Member
****
Offline



Posts: 386
Toulouse
Gender: male
Firefox vs sqlite
27. Jan 2020 at 23:04
 
Attention, un changement d’API dans sqlite peut faire planter firefox (et thunderbird en certain cas).

Testé sous FreeBSD, firefox-72.0.2_1,1 + sqlite3-3.31.0 :

Code:
david:~>lldb --core firefox.core /usr/local/bin/firefox
(lldb) target create "/usr/local/bin/firefox" --core "firefox.core"
Core file '/home/david/firefox.core' (x86_64) was loaded.
(lldb) bt
* thread #1, name = 'firefox', stop reason = signal SIGSEGV
  * frame #0: 0x00000008013c80da libc.so.7`__sys_thr_kill at thr_kill.S:3
    frame #1: 0x00000008013c64e4 libc.so.7`__raise(s=11) at raise.c:52:10
    frame #2: 0x000000080ae8b385 libxul.so`nsProfileLock::FatalSignalHandler(int, __siginfo*, void*) + 245
    frame #3: 0x000000080b871858 libxul.so`WasmTrapHandler(int, __siginfo*, void*) + 344
    frame #4: 0x000000080120129c libthr.so.3`handle_signal(actp=0x00007fffffff5040, sig=11, info=0x00007fffffff5430, ucp=0x00007fffffff50c0) at thr_sig.c:246:3
    frame #5: 0x00000008012008ac libthr.so.3`thr_sighandler(sig=11, info=0x00007fffffff5430, _ucp=0x00007fffffff50c0) at thr_sig.c:191:2
    frame #6: 0x00007ffffffff193
    frame #7: 0x0000000807fc7283 libxul.so`(anonymous namespace)::xOpen(sqlite3_vfs*, char const*, sqlite3_file*, int, int*) + 435
    frame #8: 0x000000080dc73d19 libsqlite3.so.0`___lldb_unnamed_symbol216$$libsqlite3.so.0 + 489
    frame #9: 0x000000080dc4be0b libsqlite3.so.0`sqlite3_result_null + 27
    frame #10: 0x000000080dc7fbdd libsqlite3.so.0`___lldb_unnamed_symbol262$$libsqlite3.so.0 + 15229
    frame #11: 0x000000080dc4fee5 libsqlite3.so.0`___lldb_unnamed_symbol44$$libsqlite3.so.0 + 453
    frame #12: 0x000000080dc56f88 libsqlite3.so.0`sqlite3_declare_vtab + 712
    frame #13: 0x0000000807fc14d9 libxul.so`mozilla::storage::Connection::executeSql(sqlite3*, char const*) + 105
    frame #14: 0x0000000807fc16a5 libxul.so`mozilla::storage::Connection::ExecuteSimpleSQL(nsTSubstring<char> const&) + 133
    frame #15: 0x000000080acd5374 libxul.so`mozilla::places::Database::EnsureFaviconsDatabaseAttached(nsCOMPtr<mozIStorageService> const&) + 820
    frame #16: 0x000000080acd36d6 libxul.so`mozilla::places::Database::SetupDatabaseConnection(nsCOMPtr<mozIStorageService>&) + 502
    frame #17: 0x000000080acd27d9 libxul.so`mozilla::places::Database::EnsureConnection() + 1193
    frame #18: 0x000000080ad0b54b libxul.so`non-virtual thunk to nsNavHistory::GetDBConnection(mozIStorageConnection**) + 27
    frame #19: 0x000000080778d676 libxul.so`NS_InvokeByIndex + 142
    frame #20: 0x0000000807f97638 libxul.so`XPCWrappedNative::CallMethod(XPCCallContext&, XPCWrappedNative::CallMode) + 3816
    frame #21: 0x0000000807f98f0f libxul.so`XPC_WN_GetterSetter(JSContext*, unsigned int, JS::Value*) + 687
    frame #22: 0x000000080af9d74c libxul.so`js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) + 716
    frame #23: 0x000000080af9e907 libxul.so`js::CallGetter(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, JS::MutableHandle<JS::Value>) + 231
    frame #24: 0x000000080b1acb0e libxul.so`js::NativeGetProperty(JSContext*, JS::Handle<js::NativeObject*>, JS::Handle<JS::Value>, JS::Handle<JS::PropertyKey>, JS::MutableHandle<JS::Value>) + 3182
    frame #25: 0x000000080af93f7b libxul.so`Interpret(JSContext*, js::RunState&) + 42939
    frame #26: 0x000000080af8960e libxul.so`js::RunScript(JSContext*, js::RunState&) + 254
    frame #27: 0x000000080af9dbea libxul.so`js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) + 1898
    frame #28: 0x000000080af9e10c libxul.so`js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) + 44
    frame #29: 0x000000080b0706a0 libxul.so`js::ScriptedProxyHandler::get(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<JS::PropertyKey>, JS::MutableHandle<JS::Value>) const + 704
    frame #30: 0x000000080b069793 libxul.so`js::Proxy::get(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::Handle<JS::PropertyKey>, JS::MutableHandle<JS::Value>) + 387
    frame #31: 0x000000080afa0c48 libxul.so`js::GetProperty(JSContext*, JS::Handle<JS::Value>, JS::Handle<js::PropertyName*>, JS::MutableHandle<JS::Value>) + 1288
    frame #32: 0x000000080af92449 libxul.so`Interpret(JSContext*, js::RunState&) + 35977
    frame #33: 0x000000080af8960e libxul.so`js::RunScript(JSContext*, js::RunState&) + 254
    frame #34: 0x000000080af9dbea libxul.so`js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) + 1898
    frame #35: 0x000000080af9e10c libxul.so`js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason) + 44
    frame #36: 0x000000080b153524 libxul.so`js::fun_call(JSContext*, unsigned int, JS::Value*) + 388
    frame #37: 0x000000080b153887 libxul.so`js::fun_apply(JSContext*, unsigned int, JS::Value*) + 247
(lldb)
 



En fait, un patch serait nécessaire à Firefox pour utiliser correctement l’API, mais, comme ils sont bien gentils chez sqlite, ils rétropédalent.

Quote:
    It turns out that some important 3rd-party software does questionable
    pointer manipulations on those filenames that depend on that legacy
    layout. Technically, this is a misuse of SQLite by the 3rd-party
    software, but we want to avoid unnecessary breakage


Je ne sais pas s’ils ont raison de laisser faire, finalement.
Back to top
 
WWW WWW https://diaspora.lapinbilly.eu/stream https://diaspora.lapinbilly.eu/stream  
IP Logged
 
David Marec
Senior Member
****
Offline



Posts: 386
Toulouse
Gender: male
Re: Firefox vs sqlite
Reply #1 - 31. Jan 2020 at 20:40
 
D'ailleurs, le gestionnaire du port a rétropédalé le premier. En attendant quelque chose de plus propre.
Back to top
 
WWW WWW https://diaspora.lapinbilly.eu/stream https://diaspora.lapinbilly.eu/stream  
IP Logged