[MDEV-5434] ConnectSE: ODBC: "mtr --embedded connect.odbc_postgresql" crashes in longjump Created: 2013-12-11  Updated: 2013-12-16  Resolved: 2013-12-16

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: None
Fix Version/s: 10.0.7

Type: Bug Priority: Major
Reporter: Alexander Barkov Assignee: Olivier Bertrand
Resolution: Fixed Votes: 0
Labels: None


 Description   

Note, to avoid this failure in BuildBot, odbc_postgresql is currently
skipped when run with --embedded.

Remove this line from storage/connect/mysql-test/t/odbc_postgresql.test:
--source include/not_embedded.inc

and run "./mtr --embedded connect.odbc_postgresql".
It will crash.

Running "./mtr --valgrind --embedded connect.odbc_postgresql"
gives some idea of might be wrong:

CURRENT_TEST: connect.odbc_postgresql
profile file /media/DATA/maria-bzr/maria-10.0-connect/mysql-test/connect.ini not found
==16425== Thread 3:
==16425== Conditional jump or move depends on uninitialised value(s)
==16425==    at 0x37C7035AB5: longjmp (in /usr/lib64/libc-2.16.so)
==16425==    by 0x37C780DC98: longjmp (in /usr/lib64/libpthread-2.16.so)
==16425==    by 0xCC7C55: PlugSubAlloc (plugutil.c:498)
==16425==    by 0xCD4496: CHRBLK::Init(_global*, bool) (valblk.cpp:550)
==16425==    by 0xCD3876: AllocValBlock(_global*, void*, int, int, int, int, bool, bool, bool) (valblk.cpp:105)
==16425==    by 0xC93D8D: PlgAllocResult(_global*, int, int, int, int*, XFLD*, unsigned int*, bool, bool) (plgdbutl.cpp:333)
==16425==    by 0xCAC0F9: ODBCTables(_global*, char*, char*, bool) (odbconn.cpp:581)
==16425==    by 0xCE69E2: TDBOTB::GetResult(_global*) (tabodbc.cpp:1424)
==16425==    by 0xCB1C1B: TDBCAT::Initialize(_global*) (table.cpp:478)
==16425==    by 0xCB1C85: TDBCAT::GetMaxSize(_global*) (table.cpp:491)
==16425==    by 0xC9DCC2: CntInfo(_global*, TDB*, _xinfo*) (connect.cc:170)
==16425==    by 0xC8D81B: ha_connect::info(unsigned int) (ha_connect.cc:2637)
==16425==    by 0x71392A: TABLE_LIST::fetch_number_of_rows() (table.cc:6876)
==16425==    by 0x9069BB: make_join_statistics(JOIN*, List<TABLE_LIST>&, Item*, st_dynamic_array*) (sql_select.cc:3421)
==16425==    by 0x8FF7AD: JOIN::optimize_inner() (sql_select.cc:1326)
==16425==    by 0x8FE6ED: JOIN::optimize() (sql_select.cc:1012)
==16425== 
==16425== Use of uninitialised value of size 8
==16425==    at 0x37C7035B23: __longjmp (in /usr/lib64/libc-2.16.so)
==16425== 



 Comments   
Comment by Olivier Bertrand [ 2013-12-16 ]

The unhanded long jumps were caused by memory exhaustion.
Two things have been done:
1 - Handling the long jumps during that process
2 - Reducing the needed memory

Generated at Thu Feb 08 07:04:21 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.