From: Markus N. <ne...@it...> - 2005-07-15 15:04:29
|
Hi, I have compiled the today's CVS version of the mdbtools on a 64bit Linux machine. Unfortunately the following command crashes: mdb-export -I StazioniAutomatiche.mdb Misure =20 Segmentation fault while it works well on a 32bit Linux machine. Both distros are Redhat Enterprise 4 (RHEL4). A bit of debugging (I cannot sent the file since it is 1.4GB): strace mdb-export -I StazioniAutomatiche.mdb Misure ... read(3, "\1\1\326\16\0\0\0\0\0\0\0\0\4\0\273\17v\0171\17\354\16"..., 4096= ) =3D 4096 mmap(NULL, 200704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0= ) =3D 0x2a95699000 mmap(NULL, 200704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0= ) =3D 0x2a956ca000 mmap(NULL, 200704, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0= ) =3D 0x2a956fb000 fstat(3, {st_mode=3DS_IFREG|0644, st_size=3D1479475200, ...}) =3D 0 lseek(3, 73728, SEEK_SET) =3D 73728 read(3, "\1\1V\6\20\0\0\0\0\0\0\0,\0\313\17\241\17e\0175\17\376"..., 4096= ) =3D 4096 --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ gdb `which mdb-export` r -I StazioniAutomatiche.mdb Misure Program received signal SIGSEGV, Segmentation fault. 0x000000345dc227cc in __gconv_transform_ucs2_internal () from /lib64/tls/= libc.so.6 bt #0 0x000000345dc227cc in __gconv_transform_ucs2_internal () from /lib64/= tls/libc.so.6 #1 0x000000345dc1d538 in __gconv () from /lib64/tls/libc.so.6 #2 0x000000345dc1cb9b in iconv () from /lib64/tls/libc.so.6 #3 0x0000002a955663dc in mdb_unicode2ascii (mdb=3D0x502600, src=3D0x5036= 07 "=B0", slen=3D0, dest=3D0x5199d0 "Temperatura aria Istantanea 60 min", dlen=3D16384) a= t iconv.c:73 #4 0x0000002a9555ff47 in mdb_col_to_string (mdb=3D0x502600, buf=3D0x5026= 14, start=3D4047, datatype=3D10, size=3D36) at data.c:848 #5 0x0000002a9555e83b in mdb_xfer_bound_data (mdb=3D0x502600, start=3D40= 47, col=3D0x515690, len=3D36) at data.c:222 #6 0x0000002a9555eadd in _mdb_attempt_bind (mdb=3D0x502600, col=3D0x5156= 90, isnull=3D0 '\0', offset=3D4047, len=3D36) at data.c:306 #7 0x0000002a9555ea2f in mdb_read_row (table=3D0x515210, row=3D0) at dat= a.c:284 #8 0x0000002a9555ee6e in mdb_fetch_row (table=3D0x515210) at data.c:402 #9 0x000000000040121f in main (argc=3D4, argv=3D0x7fbffff808) at mdb-exp= ort.c:157 (gdb) bt full ... is_fixed =3D 53 '5', colnum =3D 0, offset =3D 4196064}, {value =3D 0x= 515610, siz =3D 1569807600, start =3D 52, is_null =3D 48 '0', is_fixed =3D 246 '=F6', colnum =3D = 127, offset =3D -1073744400}, { value =3D 0x93635d7, siz =3D 4196064, start =3D 0, is_null =3D 0 '\0'= , is_fixed =3D 0 '\0', colnum =3D 0, offset =3D 1568700462}, {value =3D 0x0, siz =3D 1, start =3D 0, is_nu= ll =3D 0 '\0', is_fixed =3D 0 '\0', colnum =3D 0, offset =3D -1789540033}, {value =3D 0x1000, siz =3D 737= 28, start =3D 0, is_null =3D 2 '\002', is_fixed =3D 9 '\t', colnum =3D 0, offset =3D 1= 3795360}, {value =3D 0x1, siz =3D 33188, start =3D 1338, is_null =3D 204 '=CC', is_fixed =3D 0 = '\0', colnum =3D 0, offset =3D 0}, { value =3D 0x582f0000, siz =3D 4096, start =3D 0, is_null =3D 144 '\22= 0', is_fixed =3D 34 '"', colnum =3D 0, offset =3D 1121438862}, {value =3D 0x325bbbe9, siz =3D = 1111569942, start =3D 0, is_null =3D 0 '\0', is_fixed =3D 0 '\0', colnum =3D 0, offset =3D 112= 1152771}, {value =3D 0x0, siz =3D 0, start =3D 0, is_null =3D 0 '\0', is_fixed =3D 0 '\0', colnum =3D 0, o= ffset =3D 0}, {value =3D 0x1000, siz =3D 18, start =3D 0, is_null =3D 20 '\024', is_fixed =3D 38 '&', = colnum =3D 0, offset =3D 5252608}, { value =3D 0x7fbffff630, siz =3D -1789540359, start =3D 42, is_null =3D= 0 '\0', is_fixed =3D 16 '\020', colnum =3D 0, offset =3D 4096}} num_fields =3D 3 #8 0x0000002a9555ee6e in mdb_fetch_row (table=3D0x515210) at data.c:402 mdb =3D (MdbHandle *) 0x502600 fmt =3D (MdbFormatConstants *) 0x2a9566a780 rows =3D 44 rc =3D 5329424 pg =3D 0 #9 0x000000000040121f in main (argc=3D4, argv=3D0x7fbffff808) at mdb-exp= ort.c:157 j =3D 3 mdb =3D (MdbHandle *) 0x502600 table =3D (MdbTableDef *) 0x515210 col =3D (MdbColumn *) 0x0 bound_values =3D (char **) 0x517290 bound_lens =3D (int *) 0x5159b0 delimiter =3D 0x502010 "," row_delimiter =3D 0x502030 "\n" header_row =3D 0 '\0' quote_text =3D 1 '\001' insert_statements =3D 1 '\001' sanitize =3D 0 '\0' opt =3D -1 Using 'ddd' it dies in mdb-export.c:157 while(mdb_fetch_row(table)) { Do you have any ideas? I'm not sure how to continue debugging... The bug seems to be in=20 mdbtools/src/libmdb/data.c Maybe related to guint32? (sorry, just guessing). Thanks anyway for maintaining the mdbtools! Markus --=20 Markus Neteler <neteler itc it> http://mpa.itc.it ITC-irst - Centro per la Ricerca Scientifica e Tecnologica MPBA - Predictive Models for Biol. & Environ. Data Analysis Via Sommarive, 18 - 38050 Povo (Trento), Italy |