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

Wrong Error Code on Rollback Exception #3052

Closed
monetdb-team opened this issue Nov 30, 2020 · 0 comments
Closed

Wrong Error Code on Rollback Exception #3052

monetdb-team opened this issue Nov 30, 2020 · 0 comments

Comments

@monetdb-team
Copy link

@monetdb-team monetdb-team commented Nov 30, 2020

Date: 2012-03-07 12:02:46 +0100
From: Simon Brodt <<simon.brodt>>
To: clients devs <>
Version: -- development

Last updated: 2012-03-16 14:56:55 +0100

Comment 17053

Date: 2012-03-07 12:02:46 +0100
From: Simon Brodt <<simon.brodt>>

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
Build Identifier: MonetDB 5 server v11.7.7 "Dec2011-SP1" Compiled for x86_64-pc-winnt/64bit with 64bit OIDs dynamically linked -- JDBC Driver 2.1

SQLException on rollback returns SQLSTATE "22000" insted of "40000".

Reproducible: Always

Steps to Reproduce:

Try reading and writing to a table at the same time with a sufficently high frequency (not very high).

Actual Results:

SQLSTATE "22000"

Expected Results:

SQLSTATE "40000"

Probably the relevant section of the monetdb jdbc log:

RD 1331116498816: inserting prompt
TD 1331116498816: write final block: 60 bytes
TX 1331116498816: sSELECT get_value_for('hello_d_world_meta','tuple_id_seq');;
RD 1331116498817: read final block: 101 bytes
RX 1331116498817: &1 0 1 1 1
% . table_name
% get_value_for_single_value name
% bigint type
% 3 length
[ 816 ]

RD 1331116498817: inserting prompt
TD 1331116498817: write final block: 289 bytes
TX 1331116498817: sUPDATE "hello_d_world_meta"."queries"
SET "last_round" = '43',
"output_min_time_value_1" = '786',
"output_min_time_value_2" = '784',
"output_min_time_value_3" = '1331116498673',
"input_min_time_value_1" = '815',
"input_min_time_value_2" = '1331116498786'
WHERE "id" = '4'
;;
RD 1331116498861: read final block: 95 bytes
RX 1331116498861: &2 1 -1
!COMMIT: transaction is aborted because of concurency conflicts, will ROLLBACK instead

RD 1331116498861: inserting prompt
TD 1331116499657: write final block: 83 bytes
TX 1331116499657: sUPDATE
"meta"."program_insts"
SET "state" = 'LOCKED'
WHERE
"id" = '4'
;;
RD 1331116499661: read final block: 8 bytes
RX 1331116499661: &2 1 -1

Comment 17054

Date: 2012-03-07 12:30:25 +0100
From: @grobian

Indeed. Server doesn't provide an error code, so the driver falls back to some default one.

Comment 17055

Date: 2012-03-07 13:34:52 +0100
From: @grobian

Changeset cba537e56f14 made by Fabian Groffen fabian@cwi.nl in the MonetDB repo, refers to this bug.

For complete details, see http//devmonetdborg/hg/MonetDB?cmd=changeset;node=cba537e56f14

Changeset description:

mvc_commit: send SQLSTATE 40000 for transaction aborts

Because I don't know any specifics, send generic "transaction rollback"
SQLSTATE on commit failures for bug #3052.

Comment 17102

Date: 2012-03-16 14:56:55 +0100
From: @grobian

Released in Dec2011-SP2

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

Successfully merging a pull request may close this issue.

None yet
1 participant