Bug 3883 - Segmentation fault due to failed GDKmalloc(65536) on Solaris (Sol-Sol-i64)
Summary: Segmentation fault due to failed GDKmalloc(65536) on Solaris (Sol-Sol-i64)
Status: RESOLVED FIXED
Alias: None
Product: GDK kernel
Classification: Unclassified
Component: all (show other bugs)
Version: 11.21.19 (Jul2015-SP4)
Hardware: All Solaris
: Normal critical
Assignee: GDK devs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-12-10 15:55 CET by Martin van Dinther
Modified: 2018-02-08 18:56 CET (History)
0 users



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin van Dinther 2015-12-10 15:55:59 CET
User-Agent:       Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:42.0) Gecko/20100101 Firefox/42.0
Build Identifier: 

The testweb (branches Jul2015 and default) report a C (crash) for some sql tests on Solaris (Sol-Sol-i64)
See: 
http://monetdb.cwi.nl/testweb/web/testgrid.php?serial=58025:116968e7daf0&targets=Sol-Solaris-x86_64&module=sql

It is probably due to limited internal (and virtual) memory.
However the server should catch a failed GDKMalloc and proper report the issue following by canceling the current statement processing and cleanup.

Potentially the GDKmalloc(65536) could be replaced by allocating a smaller size.


Reproducible: Always

Steps to Reproduce:
1. check testweb results for branch: Jul2015 (and default)
2. search for results on Solaris (Sol-Sol-i64) which reported a C(rash)
See: http://monetdb.cwi.nl/testweb/web/testgrid.php?serial=58025:116968e7daf0&targets=Sol-Solaris-x86_64&module=sql
and
http://monetdb.cwi.nl/testweb/web/testgrid.php?serial=58027:4c53026fad4c&targets=Sol-Solaris-x86_64&module=sql

Actual Results:  
http://monetdb.cwi.nl/testweb/web/showtestoutput.php?serial=58025:116968e7daf0&target=Sol-Solaris-x86_64&module=sql&test=sql%2Ftest%2FBugTracker-2012%2Fhuge_table_update.Bug-2803&which=err

#GDKmalloc(65536) fails, try to free up space [memory in use=970127896,virtual memory in use=970127896]
#GDKmalloc(65536) result [mem=948233352,vm=948233352]
#GDKmallocmax: recovery ok. Continuing..
#GDKmalloc(65536) fails, try to free up space [memory in use=1002938568,virtual memory in use=1002938568]
#GDKmalloc(65536) result [mem=1002747944,vm=1002747944]
#GDKmallocmax: recovery ok. Continuing..
#GDKmalloc(65536) fails, try to free up space [memory in use=1003206808,virtual memory in use=1003206808]
#GDKmalloc(65536) result [mem=1003206808,vm=1003206808]

Segmentation fault


and:
http://monetdb.cwi.nl/testweb/web/showtestoutput.php?serial=58025:116968e7daf0&target=Sol-Solaris-x86_64&module=sql&test=sql%2Ftest%2FSQLite_regress%2Fsqllogictest%2Fselect5.test&which=err

#GDKmalloc(65536) fails, try to free up space [memory in use=920026352,virtual memory in use=920026352]
#GDKmalloc(65536) result [mem=916231928,vm=916231928]

Segmentation fault

and:
http://monetdb.cwi.nl/testweb/web/showtestoutput.php?serial=58025:116968e7daf0&target=Sol-Solaris-x86_64&module=sql&test=sql%2Ftest%2Frdf%2Fq8_v&which=err

#GDKmalloc(65536) fails, try to free up space [memory in use=943413600,virtual memory in use=943413600]
#GDKmalloc(65536) result [mem=942724168,vm=942724168]
#GDKmallocmax: recovery ok. Continuing..
#GDKmalloc(65536) fails, try to free up space [memory in use=974385784,virtual memory in use=974385784]
#GDKmalloc(65536) result [mem=974385784,vm=974385784]

Segmentation fault

Expected Results:  
No segmentation fault but
 an error msg stating there is not enough internal or virtual memory to complete the SQL statement.
Comment 1 Martin van Dinther 2018-02-08 18:56:54 CET
In Jul2017 (and Mar2018) releases many memory allocation failures are checked and handled properly.
It is still possible to get out of virtual memory errors on smaller systems, typically on 32-bit OSes.