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

Server crashes while accessing context variables concurrently [CORE4616] #4931

Closed
firebird-automations opened this issue Nov 21, 2014 · 4 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: Yurij (yurij)

Crash happens when one thread executes RDB$SET_CONTEXT:

fb_inet_server!set_context
fb_inet_server!CALL_UDF<long>
fb_inet_server!invoke
fb_inet_server!FUN_evaluate
fb_inet_server!EVL_expr
fb_inet_server!EXE_assignment
fb_inet_server!EXE_looper
fb_inet_server!looper_seh
fb_inet_server!execute_looper
fb_inet_server!EXE_start
fb_inet_server!execute_triggers
fb_inet_server!EXE_execute_db_triggers
fb_inet_server!JRD_start_multiple
fb_inet_server!jrd8_start_transaction

and another one retrieves the list of context variables due to the MON$ table request:

fb_inet_server!Jrd::DatabaseSnapshot::putContextVars+0xc3
fb_inet_server!Jrd::DatabaseSnapshot::dumpData+0x128
fb_inet_server!Jrd::DatabaseSnapshot::blockingAst+0x9c
fb_inet_server!Jrd::LockManager::blocking_action+0x134
fb_inet_server!Jrd::LockManager::signal_owner+0x37
fb_inet_server!Jrd::LockManager::post_blockage+0x1b4
fb_inet_server!Jrd::LockManager::wait_for_request+0x3d9
fb_inet_server!Jrd::LockManager::grant_or_que+0x8c
fb_inet_server!Jrd::LockManager::enqueue+0x20e
fb_inet_server!enqueue+0x51
fb_inet_server!LCK_lock+0x8f
fb_inet_server!LCK_lock_opt+0x36
fb_inet_server!lock_buffer+0xdb
fb_inet_server!CCH_fetch_lock+0x132
fb_inet_server!CCH_fetch+0x2d
fb_inet_server!DPM_gen_id+0x152

Bug is caused by the lack of proper synchronization inside RDB$SET_CONTEXT. v2.1 and v3 are not affected.

Commits: 0db9aff FirebirdSQL/fbt-repository@9db8123

====== Test Details ======

Can`t understand "pseudo-language" from starting post. Is it possible to write sequence of actions in each thread more simply ?

@firebird-automations
Copy link
Collaborator Author

Modified by: @dyemanov

reporter: Dmitry Yemanov [ dimitr ] => Yurij [ yurij ]

assignee: Dmitry Yemanov [ dimitr ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @dyemanov

status: Open [ 1 ] => Resolved [ 5 ]

resolution: Fixed [ 1 ]

Fix Version: 2.5.4 [ 10585 ]

@firebird-automations
Copy link
Collaborator Author

Modified by: @pavel-zotov

status: Resolved [ 5 ] => Resolved [ 5 ]

QA Status: Not enough information

Test Details: Can`t understand "pseudo-language" from starting post. Is it possible to write sequence of actions in each thread more simply ?

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

status: Resolved [ 5 ] => Closed [ 6 ]

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