Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash at database restore due to failed system call #8315

Closed
hvlad opened this issue Nov 12, 2024 · 0 comments
Closed

Crash at database restore due to failed system call #8315

hvlad opened this issue Nov 12, 2024 · 0 comments

Comments

@hvlad
Copy link
Member

hvlad commented Nov 12, 2024

There reason is rase condition in Burp::IOBuffer::unlock().

The call stack

#0 0x00007f561fbc541f in raise () from /lib64/libc.so.6
#1 0x00007f561fbaf895 in abort () from /lib64/libc.so.6
#2 0x000000000041408d in __gnu_cxx::__verbose_terminate_handler() [clone .cold] ()
#3 0x0000000000548976 in __cxxabiv1::__terminate(void (*)()) ()
#4 0x00000000005dfca9 in __cxa_call_terminate ()
#5 0x0000000000548621 in __gxx_personality_v0 ()
#6 0x00007f561fd833c4 in _Unwind_RaiseException_Phase2 () from /lib64/libgcc_s.so.1
#7 0x00007f561fd83a61 in _Unwind_RaiseException () from /lib64/libgcc_s.so.1
#8 0x0000000000548b27 in __cxa_throw ()
#9 0x000000000040a098 in Firebird::system_call_failed::raise (syscall=0x5ea0a7 "pthread_mutex_unlock", error_code=1) at /src/common/fb_exception.cpp:268
#10 0x0000000000418107 in Firebird::Mutex::leave (this=) at /src/include/../common/classes/locks.h:244
#11 Burp::IOBuffer::unlock (opt=true, this=) at /src/burp/../burp/BurpTasks.h:553
#12 Burp::RestoreRelationTask::Item::EnsureUnlockBuffer::~EnsureUnlockBuffer (this=, __in_chrg=) at /src/burp/BurpTasks.cpp:1102
#13 0x000000000041b492 in Burp::RestoreRelationTask::handler (this=, _item=...) at /src/burp/BurpTasks.cpp:88
#14 0x00000000004843be in Firebird::Worker::work (this=this@entry=0x7f55d956bfe0, thd=thd@entry=0x0) at /src/common/Task.cpp:149
#15 0x00000000004853cb in Firebird::Coordinator::runSync (this=0x7ffc23434440, task=0x7ffc23434960) at /src/common/Task.cpp:241
#16 0x000000000047a364 in (anonymous namespace)::get_relation_data (task=, coord=, tdgbl=) at /temp/Release/burp/restore.cpp:17783
#17 (anonymous namespace)::restore (tdgbl=0x7ffc23436260, provider=, file_name=, database_name=) at /temp/Release/burp/restore.cpp:21738
#18 0x000000000047a751 in RESTORE_restore (file_name=0x7f561f9f1924 "stdin", database_name=0x7f561f9f2610 "/home/db-5.0.fdb") at /temp/Release/burp/restore.cpp:5797
#19 0x000000000043fdfb in gbak (uSvc=) at /src/burp/burp.cpp:1492
#20 0x0000000000416446 in main (argc=, argv=0x7ffc234373c8) at /src/burp/main/burpMain.cpp:64

Thanks to @ilya071294 who reported the bug and provided call stack and initial analysis.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants