-
Notifications
You must be signed in to change notification settings - Fork 6
Description
(see below for full output)
Did anyone ever run into buffer overflow issues while running a FLAME-1 model on 64-bit architectures, while the same mode is running fine on 32-bit systems?
Error description:
-
When running the model on some 64-Bit-Systems, about 1/4 of all runs fail after a few iterations. The exact error message varies, but seems in every case to be related to some memory issue (variables have extremely huge values out of nowhere etc). Even if the model makes it through the first iterations, it may still fail at a later stage.
-
The error appears to occur randomly and cannot be reproduced by fixing the random seed(s).
-
This issue has been observed on (64-bit) Ubuntu and Linux Mint, in VMWare and in the Google Compute Engine.
-
The problem is not present on 32-Bit Linux Mint, 64-Bit Debian or in the ETACE Virtual Appliance (a VM based on SliTaz Linux).
-
The problem looks similar to the one related to different pointer sizes on 32-bit and 64-bit system, resp., as mentioned here:
- We are also wondering if Libmboard could have anything to do with it? Since it is running on its own computational thread, so it brings in multi-threading and possibly threat-safety issues?
Any hints are much appreciated!
P.S. At this point, we did not provide a minimal working example, as we are exploring the possible causes. Also, the problem seems to be non-deterministic due to the memory corruption feature, so it cannot be reproduced by fixing a random seed. Therefore a minimal working example does not seem to make much sense at this point.
Output
[libmboard] Version : 0.3.1 (SERIAL)
[libmboard] Build date : Thu Nov 30 08:37:54 CET 2017
[libmboard] Config options : '--disable-tests'
[libmboard] +++ This is a DEBUG version +++
[libmboard] MBOARD_MEMPOOL_RECYCLE = 0 (default)
[libmboard] MBOARD_MEMPOOL_BLOCKSIZE = 512 (default)
FLAME Application: EuraceUnibi - Financial Fragility Models
Debug mode enabled
Iterations: 20
Using output frequency of: 500
xml: Geometric partitioning
Reading initial data file: its/0.xml
Reading environment data from: its/0.xml
Reading agent data from: its/0.xml
output: type='snapshot' format='xml' location='its/' period='1' phase='0'
xdiv=0 ydiv=1
[GSL Random Number Generator] generator type: mt19937
[GSL Random Number Generator] seed = 1512124615
[GSL Random Number Generator] first value = 470329365
Iteration - 1
Iteration - 2
WARNING: Household unable to make full tax payment! ID: 1683, tax_payment: 0.075000, payment_account: -965229873985799499189192277629904201137507045232654686213282330340742171062327072897144615706725636622884354568087913499257271543958953997474764960583024510328897536.000000
WARNING: Household unable to make full tax payment! ID: 1543, tax_payment: 0.075000, payment_account: -965229873985799499189192277629904201137507045232654686213282330340742171062327072897144615706725636622884354568087913499257271543958953997474764960583024510328897536.000000
WARNING: Household unable to make full tax payment! ID: 1518, tax_payment: 0.075000, payment_account: -965229873985799499189192277629904201137507045232654686213282330340742171062327072897144615706725636622884354568087913499257271543958953997474764960583024510328897536.000000
[...]