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
Increase max length of buffer that contains ID of transactions in limbo state (that can be seen by 'gfix -list ....' or obtained by API call) [CORE6140] #6389
Comments
Modified by: @pavel-zotovAttachment: make-255-limbo-transactions.py.zip [ 13380 ] |
Modified by: @pavel-zotovsummary: Increase max length of buffer that contains ID of transactions in limbo state (that can be seen by 'gfix -list ....') => Increase max length of buffer that contains ID of transactions in limbo state (that can be seen by 'gfix -list ....' or obtained by API call) |
Commented by: @hvlad Explain - did you complain about gfix, or about pyton ? |
Commented by: @pavel-zotov Both Python and gfix -list do not show full list; they both stops after 146th element.
|
Modified by: @pavel-zotovAttachment: db-with-255-limbo-tx_-_made-in-firebird-2_5_9.7z [ 13381 ] |
Commented by: @hvlad 1. gfix correctly wrote More limbo transactions than fit. Try again I think it is more-or-less OK. 2. I don't see that FB3 fails - nor engine, nor API. PS I don't know Pyton to make correct\final conclusions but ...
the comment is wrong - after info byte there is two-bytes with length of following data. |
Commented by: @hvlad > the comment is wrong - after info byte there is two-bytes with length of following data. Sorry, Pyton implementation actually uses Services API, not isc_database_info. It seems correct in this case. |
Commented by: @pavel-zotov >> FB 3.x fails with error Yes, me wrong there; this phrase should be: "FDB driver raises error when work with FB 3.x ..." |
Commented by: @hvlad This comment belongs to the CORE6139, sorry ! Seems i found the problem. Pyton call isc_service_query with isc_info_svc_line option. This is not correct as isc_info_svc_limbo_trans is binary request, also for isc_info_svc_line Firebird replaces "new line" character (\n or 0x10) with space, see below: Found Tx in limbo, ID: 8 Instead, isc_info_svc_to_eof (or isc_info_svc_limbo_trans) should be used. |
Submitted by: @pavel-zotov
Attachments:
make-255-limbo-transactions.py.zip
db-with-255-limbo-tx_-_made-in-firebird-2_5_9.7z
Install Python >= 2.7, FDB driver for acces FB databases and run script from attachment.
It will create database "c:\temp\c5930_a.fdb" with 255 limbo transactions.
Try to get list of these Tx. You will find that this list has only 146 elements instead of all.
The text was updated successfully, but these errors were encountered: