Re: esqlc limitation
Posted in 2004
Topics: Connectivity: ESQL/C, 4GL & Embedded SQL, Platform-Specific Issues
Hi ! First of all, Thx for the answers (I answer to the two messages with only one message...) For the question from Abhishek Mathur => it only happen on platform i give so far: > > I Use: > > IBM Informix Dynamic Server Version 9.40.UC2 On AIX 5.1 > > With GCC 3.3.1 > > IBM Informix CSDK Version 2.81, IBM Informix-ESQL Version 9.53.UC2 "Jonathan Leffler" wrote > > Do you know if thereis a "size" limitation for the output file of such a > > command line : 'esql -e -I/home/inc ownlib.ec' ?? > > There isn't supposed to be any limitation other than your disk size - > well, up to a couple of GB, anyway. After that, you're on thin ice. We've got 1Gb Memory and 1Gb swap.... very classic for such an application And hard drive space do not seems to be a problem... (Just before having core dumped => There is a lot of disk access.... But I think that one part is Swapping, and other is writing core on disk) [....cut....] > > I can include a lot of them , but there is a limit... > > At a certain point i got : > > esql[608]: 15326 illegal instruction(coredump) > > That's not good - core dumps mean bugs. You should run 'sh -x > $INFORMIXDIR/bin/esql -e -I/home/inc ownlib.ec' and check which > program is core dumping. Odd are, it is $INFORMIXDIR/lib/esql/esqlc, > in which case the C compiler you're using is immaterial. > > If the problem is in GCC (unlikely), then you need to ask elsewhere. I don't know if it would be of interest to migrate to 3.3.2 or 3.3.3.... Doesn't seems that such problem have declared on GCC list or in the change logs. sh -x.....result: ============== sh -x $INFORMIXDIR/bin/esql -e -I/home/inc ownlib.ec [cut] + [ 0 = 0 -a FALSE != TRUE ] + [ x != x ] + /home/informix/lib/esql/esqlc -I/home/inc/ -t unix ownlib.ec /home/informix/bin/esql[608]: 8612 illegal instruction(coredump) + STAT=132 + CFILE=TRUE [cut] That's it ... I'm gonna try 2 more things And then post an example code that reproduce the core. Thx ! maybe this will be a double post...sorry for that .... It happens sometimes
hobbes wrote: > First of all, Thx for the answers [...] > > sh -x.....result: > ============== > sh -x $INFORMIXDIR/bin/esql -e -I/home/inc ownlib.ec > [cut] > + [ 0 = 0 -a FALSE != TRUE ] > + [ x != x ] > + /home/informix/lib/esql/esqlc -I/home/inc/ -t unix ownlib.ec > /home/informix/bin/esql[608]: 8612 illegal instruction(coredump) > + STAT=132 > + CFILE=TRUE > [cut] The problems in the ESQL/C preprocessor - not GCC. > That's it ... > I'm gonna try 2 more things > And then post an example code that reproduce the core. Please ensure you Cc Abhishek Mathur and me with that information. Try to minimize what you need to supply. For example, there's a hypothesis that you have a large array of structs declared to ESQL/C, and the structs contain DATETIME or INTERVAL values. Is that possible? Something approximately equivalent to: EXEC SQL BEGIN DECLARE SECTION; struct mine { d1 datetime year to second; d2 interval day(9) to second; }; struct mine elephant[75000]; EXEC SQL END DECLARE SECTION; That's not been past an ESQL/C compiler - there might be errors in it. -- Jonathan Leffler #include <disclaimer.h> Email: jleffler@earthlink.net, jleffler@us.ibm.com Guardian of DBD::Informix v2003.04 -- http://dbi.perl.org/
"Jonathan Leffler" wrote > The problems in the ESQL/C preprocessor - not GCC. Humm.. that's what i guessed in the first days... > > > That's it ... > > I'm gonna try 2 more things > > And then post an example code that reproduce the core. > > Please ensure you Cc Abhishek Mathur and me with that information. At the moment , i cannot succeed in writing an easy thing to reproduce this without mentionning "job" data. > Try to minimize what you need to supply. For example, there's a > hypothesis that you have a large array of structs declared to ESQL/C, > and the structs contain DATETIME or INTERVAL values. Is that > possible? Something approximately equivalent to: > EXEC SQL BEGIN DECLARE SECTION; > struct mine { d1 datetime year to second; d2 interval day(9) to second; }; > struct mine elephant[75000]; > EXEC SQL END DECLARE SECTION; Exactly ... struct are like that: ====================== struct timeout_{ long number; char identity[33]; char window[61]; char module[41]; char access[121]; char snap[41]; long ref; long datatype; char date[27]; long mentite; long muser; } timeout; struct timeout_ timeout_log; ======================== date are managed as char[27]. (Easier for us to integrate in our processes) > That's not been past an ESQL/C compiler - there might be errors in it. Doesn't sure to understand very well... (excuse me for my poor english :)) That's means taht error are possible ... and certainly won't be corrected for a while ?? Is this product discontinued ? (I think the license have changed but is the product still available ??) i will try to post an example anyway thx again !