Segfault when testing database error condition

"James B. Byrne via Aubit4gl-discuss" <[email protected]> Tue, 13 Jul 2021 15:23:51 -0400
Newsgroups gmane.comp.lang.4gl.aubit.general
Message-ID <[email protected]>
I deliberately gave a working 4gl program a non-existant database name.  This
is what happened.

Internal Error - segmentation fault
Please note all circumstances and log with the Aubit4GL team
If possible - reproduce the error with the environment variable DEBUG
set to ALL :

$ export DEBUG=ALL

And enclose the last 100 lines from the resultant debug.out file
with your bug log.

Module : ex19.4gl  Line : 61
4gl function call stack :
    MAIN

It seems to me that the problem might be with the screen handler but that is
just a guess.

    60	  OPEN FORM f_customer FROM "f_customer"
    61	  DISPLAY FORM f_customer
    62

In any case, a segfault seems a bit severe because of a typo in a DB name.


$ tail -100 debug.out
newpanels.c          2447   dbg (     0,     0,0) A4GL_chkwin              () 
chkwin
newpanels.c          2491   dbg (     0,     0,0) A4GL_chkwin              () 
API_ui Was screen mode..
newpanels.c          1526   dbg (     0,     0,0) UILIB_A4GL_get_curr_form () 
currwinno=0
ioform.c             4624   dbg (     0,     0,0) UILIB_A4GL_clr_form      () 
Calling set_field_attr_with_attr for clearing..
ioform.c             747    dbg (     0,     0,0)
A4GL_set_field_attr_with_attr()  Passed in attribute: 0, determined attribute
should be 0
ioform.c             758    dbg (     0,     0,0)
A4GL_set_field_attr_with_attr()  MJA Calling A4GL_set_field_colour_attr -
do_reverse=0 attr=0
colours.c            162    dbg (     0,     0,0)
A4GL_decode_colour_attr_aubit()  MJA Decoding 0
attributes.c         266    dbg (     0,     0,0) A4GL_get_strings_from_attr() 
Attr=0
attributes.c         273    dbg (     0,     0,0) A4GL_get_strings_from_attr() 
col_int=0
colours.c            167    dbg (     0,     0,0)
A4GL_decode_colour_attr_aubit()  MJA Got colour as : BLACK -
colours.c            107    dbg (     0,     0,0) A4GL_colour_code         () 
MJA Returning color code (0+1)
ioform.c             798    dbg (     0,     0,0) A4GL_set_field_colour_attr() 
set_field_colour_attr - do_reverse=0 colour=0 - 0
API_form.c           180    dbg (     0,     0,0) A4GL_has_bool_attribute  () 
Call to int A4GL_has_bool_attribute(0x80192a900,2)
readforms.c          548    dbg (     0,     0,0)
A4GLFORM_A4GL_has_bool_attribute()  via A4GL_has_bool_attribute in lib
readforms.c          558    dbg (     0,     0,0) real_has_bool_attribute  () 
Checking 0x80192a900 for 2
readforms.c          563    dbg (     0,     0,0) real_has_bool_attribute  () 
2 0 1
readforms.c          569    dbg (     0,     0,0) real_has_bool_attribute  () 
Nope
API_form.c           188    dbg (     0,     0,0) A4GL_has_bool_attribute  () 
Returning '0'
attributes.c         266    dbg (     0,     0,0) A4GL_get_strings_from_attr() 
Attr=0
attributes.c         273    dbg (     0,     0,0) A4GL_get_strings_from_attr() 
col_int=0
colours.c            239    dbg (     0,     0,0) A4GL_decode_aubit_attr   () 
A=0 colour=BLACK attr= MJAMJAMJA
colours.c            162    dbg (     0,     0,0)
A4GL_decode_colour_attr_aubit()  MJA Decoding 0
attributes.c         266    dbg (     0,     0,0) A4GL_get_strings_from_attr() 
Attr=0
attributes.c         273    dbg (     0,     0,0) A4GL_get_strings_from_attr() 
col_int=0
colours.c            167    dbg (     0,     0,0)
A4GL_decode_colour_attr_aubit()  MJA Got colour as : BLACK -
colours.c            107    dbg (     0,     0,0) A4GL_colour_code         () 
MJA Returning color code (0+1)
colours.c            301    dbg (     0,     0,0) A4GL_decode_aubit_attr   () 
Returning ca = 0 0 (visible=1)
attributes.c         266    dbg (     0,     0,0) A4GL_get_strings_from_attr() 
Attr=0
attributes.c         273    dbg (     0,     0,0) A4GL_get_strings_from_attr() 
col_int=0
colours.c            239    dbg (     0,     0,0) A4GL_decode_aubit_attr   () 
A=0 colour=BLACK attr= MJAMJAMJA
colours.c            162    dbg (     0,     0,0)
A4GL_decode_colour_attr_aubit()  MJA Decoding 0
attributes.c         266    dbg (     0,     0,0) A4GL_get_strings_from_attr() 
Attr=0
attributes.c         273    dbg (     0,     0,0) A4GL_get_strings_from_attr() 
col_int=0
colours.c            167    dbg (     0,     0,0)
A4GL_decode_colour_attr_aubit()  MJA Got colour as : BLACK -
colours.c            107    dbg (     0,     0,0) A4GL_colour_code         () 
MJA Returning color code (0+1)
colours.c            301    dbg (     0,     0,0) A4GL_decode_aubit_attr   () 
Returning ca = 0 0 (visible=1)
ioform.c             4632   dbg (     0,     0,0) UILIB_A4GL_clr_form      () 
Blanking field 0x802024480 MJAMJAMJA
newpanels.c          2447   dbg (     0,     0,0) A4GL_chkwin              () 
chkwin
newpanels.c          2491   dbg (     0,     0,0) A4GL_chkwin              () 
API_ui Was screen mode..
newpanels.c          1526   dbg (     0,     0,0) UILIB_A4GL_get_curr_form () 
currwinno=0
ioform.c             1462   dbg (     0,     0,0) A4GL_get_metric_for      () 
In curr metric
ioform.c             1469   dbg (     0,     0,0) A4GL_get_metric_for      () 
Returning 3
ioform.c             1681   dbg (     0,     0,0) A4GL_get_field_width_w   () 
mno=3 formdets=0x8019ef980 f=0x802024480
ioform.c             1462   dbg (     0,     0,0) A4GL_get_metric_for      () 
In curr metric
ioform.c             1469   dbg (     0,     0,0) A4GL_get_metric_for      () 
Returning 3
newpanels.c          2447   dbg (     0,     0,0) A4GL_chkwin              () 
chkwin
newpanels.c          2491   dbg (     0,     0,0) A4GL_chkwin              () 
API_ui Was screen mode..
newpanels.c          1526   dbg (     0,     0,0) UILIB_A4GL_get_curr_form () 
currwinno=0
ioform.c             1462   dbg (     0,     0,0) A4GL_get_metric_for      () 
In curr metric
ioform.c             1469   dbg (     0,     0,0) A4GL_get_metric_for      () 
Returning 3
ioform.c             1681   dbg (     0,     0,0) A4GL_get_field_width_w   () 
mno=3 formdets=0x8019ef980 f=0x802024480
ioform.c             1462   dbg (     0,     0,0) A4GL_get_metric_for      () 
In curr metric
ioform.c             1469   dbg (     0,     0,0) A4GL_get_metric_for      () 
Returning 3
ioform.c             3521   dbg (     0,     0,0) A4GL_mja_set_field_buffer() 
mja_set_field_buffer buff='' buff2='' (0,7)
newpanels.c          2447   dbg (     0,     0,0) A4GL_chkwin              () 
chkwin
newpanels.c          2491   dbg (     0,     0,0) A4GL_chkwin              () 
API_ui Was screen mode..
newpanels.c          1526   dbg (     0,     0,0) UILIB_A4GL_get_curr_form () 
currwinno=0
ioform.c             1462   dbg (     0,     0,0) A4GL_get_metric_for      () 
In curr metric
ioform.c             1469   dbg (     0,     0,0) A4GL_get_metric_for      () 
Returning 3
ioform.c             1681   dbg (     0,     0,0) A4GL_get_field_width_w   () 
mno=3 formdets=0x8019ef980 f=0x802024480
ioform.c             1462   dbg (     0,     0,0) A4GL_get_metric_for      () 
In curr metric
ioform.c             1469   dbg (     0,     0,0) A4GL_get_metric_for      () 
Returning 3
ioform.c             3529   dbg (     0,     0,0) A4GL_mja_set_field_buffer() 
Adding padding
newpanels.c          2447   dbg (     0,     0,0) A4GL_chkwin              () 
chkwin
newpanels.c          2491   dbg (     0,     0,0) A4GL_chkwin              () 
API_ui Was screen mode..
newpanels.c          1526   dbg (     0,     0,0) UILIB_A4GL_get_curr_form () 
currwinno=0
ioform.c             1462   dbg (     0,     0,0) A4GL_get_metric_for      () 
In curr metric
ioform.c             1469   dbg (     0,     0,0) A4GL_get_metric_for      () 
Returning 3
ioform.c             1681   dbg (     0,     0,0) A4GL_get_field_width_w   () 
mno=3 formdets=0x8019ef980 f=0x802024480
ioform.c             1462   dbg (     0,     0,0) A4GL_get_metric_for      () 
In curr metric
ioform.c             1469   dbg (     0,     0,0) A4GL_get_metric_for      () 
Returning 3
funcs_d.c            370    dbg (     0,     0,0) A4GL_pad_string          () 
Padding to size 7 by adding 7 spaces
newpanels.c          2447   dbg (     0,     0,0) A4GL_chkwin              () 
chkwin
newpanels.c          2491   dbg (     0,     0,0) A4GL_chkwin              () 
API_ui Was screen mode..
newpanels.c          1526   dbg (     0,     0,0) UILIB_A4GL_get_curr_form () 
currwinno=0
ioform.c             1462   dbg (     0,     0,0) A4GL_get_metric_for      () 
In curr metric
ioform.c             1469   dbg (     0,     0,0) A4GL_get_metric_for      () 
Returning 3
ioform.c             1681   dbg (     0,     0,0) A4GL_get_field_width_w   () 
mno=3 formdets=0x8019ef980 f=0x802024480
ioform.c             1462   dbg (     0,     0,0) A4GL_get_metric_for      () 
In curr metric
ioform.c             1469   dbg (     0,     0,0) A4GL_get_metric_for      () 
Returning 3
ioform.c             3565   dbg (     0,     0,0) A4GL_mja_set_field_buffer() 
setting field buffer to         .. 7
curslib.c            2393   dbg (     0,     0,0) local_field_opts         () 
UUU GOT 0x802024480 28f
ioform.c             4162   dbg (     0,     0,0) A4GL_debug_print_field_opts()
 UUU Field 0x802024480 attribs=  O_VISIBLE O_ACTIVE O_PUBLIC O_EDIT O_NULLOK
O_STATIC: (       )
ioform.c             3571   dbg (     0,     0,0) A4GL_mja_set_field_buffer() 
Before trim:
ioform.c             3585   dbg (     0,     0,0) A4GL_mja_set_field_buffer() 
after trim:
ioform.c             3599   dbg (     0,     0,0) A4GL_mja_set_field_buffer() 
Setting 0x802024480 0 to         (0)
ioform.c             3600   dbg (     0,     0,0) A4GL_mja_set_field_buffer() 
field buffer set to '       '
ioform.c             3601   dbg (     0,     0,0) A4GL_mja_set_field_buffer() 
Currwin=0x80204ddd0
iarray.c             1850   dbg (     0,     0,0) A4GL_mja_pos_form_cursor () 
mja_pos_form_cursor called with form=0x802024480 field would be 0x802024500
fglwrap.c            1234   dbg (     0,     0,0) A4GL_core_dump           () 
In screen mode - ending curses - caught a core dump
API_ui.c             1089   dbg (     0,     0,0) A4GL_gotolinemode        () 
Call to void A4GL_gotolinemode()
API_sql.c            354    dbg (     0,     0,0)
A4GLSQL_close_session_internal()  Call to int
A4GLSQL_close_session_internal((default)))
pg8.c                766    dbg (     0,     0,0)
A4GLSQLLIB_A4GLSQL_close_session_internal()  Close session default
sql_common.c         323    dbg (     0,     0,0) A4GL_set_status          () 
A4GL_set_status(0,1)
sql_common.c         335    dbg (     0,     0,0) A4GL_set_status          () 
Status set to 0
API_sql.c            362    dbg (     0,     0,0)
A4GLSQL_close_session_internal()  Returning '1'
builtin.c            1070   dbg (     0,     0,0) A4GL_close_errorlog_file () 
Close_errlog_file
API_ui.c             1551   dbg (     0,     0,0) A4GL_ui_exit             () 
Call to void A4GL_ui_exit(99)
builtin.c            1070   dbg (     0,     0,0) A4GL_close_errorlog_file () 
Close_errlog_file
common_ui.c          68     dbg (     0,     0,0) A4GL_fgl_die             () 
End of program - exit(99).



-- 
***          e-Mail is NOT a SECURE channel          ***
        Do NOT transmit sensitive data via e-Mail
   Unencrypted messages have no legal claim to privacy
 Do NOT open attachments nor follow links sent by e-Mail

James B. Byrne                mailto:[email protected]
Harte & Lyne Limited          http://www.harte-lyne.ca
9 Brockley Drive              vox: +1 905 561 1241
Hamilton, Ontario             fax: +1 905 561 0757
Canada  L8E 3C3