Opened 9 years ago

Closed 9 years ago

#1014 closed defect (fixed)

database corruption if multiple updates are executed

Reported by: George Merticariu Owned by: Dimitar Misev
Priority: critical Milestone:
Component: undecided Version: development
Keywords: Cc: Peter Baumann, Dimitar Misev, Alex Dumitru, Vlad Merticariu
Complexity: Very Hard

Description

I tried to create a rasdaman collection of 10GB (100 update of 100MB) and I got the following error:

[INFO] Connecting to /home/george/Projects/data/rasdaman/RASBASE
[WARN] The administrative tables for tiles is inconsistent.
[WARN] Counter BlobId in table RAS_TILES: 938
[WARN] Counter in table RAS_COUNTERS with name 'BLOBOID': 925
[FATAL] Database inconsistent.
ERROR] Error: encountered 1000: General error: RasDaMan tables inconsistent.
[INFO] rasserver terminated.

This renders the database and the rasdaman server unusable.

Repro:

  1. install a fresh copy of rasdaman with sqlite base db
  2. ./rasql -q 'create collection testBig GreySet' —user rasadmin —passwd rasadmin
  3. ./rasql -q 'insert into testBig values marray x in [0:1,0:1] values 0c' —user rasadmin —passwd rasadmin
  1. Generate a 100MB file: head -c 104857600 /dev/urandom > 100MBtestfile
  2. run the attached script: php test_big.php <path_to_rasql> <path_to_100MBtestfile>

After a couple of updates, the following error happens:

* Error in `/home/george/Projects/out/rasdaman/bin/rasserver': double free or corruption (fasttop): 0x00007fbceffecd40 *

After this error the sqlite database becomes corrupted and it has to be deleted and recreated in order to become reusable.

Other encountered exceptions which are not corrupting the database:

  1. rasql -q 'update testBig as c set c assign $1' —file /home/george/insertfile —mddtype GreyImage —mdddomain [10240:20479,163840:174079] —user rasadmin —passwd rasadmin

rasdaman error 206: Error in base DBMS, error number: 14

  1. rasql -q 'update testBig as c set c assign $1' —file /home/george/insertfile —mddtype GreyImage —mdddomain [61440:71679,696320:706559] —user rasadmin —passwd rasadmin

rasdaman error 206: Serialisable exception r_Ebase_dbms: error in base DBMS.

  1. rasql -q 'update testBig as c set c assign $1' —file /home/george/insertfile —mddtype GreyImage —mdddomain [51200:61439,512000:522239] —user rasadmin —passwd rasadmin

terminate called after throwing an instance of 'std::runtime_error'

what(): std::exception

Aborted (core dumped)

Attachments (1)

test.php (698 bytes ) - added by George Merticariu 9 years ago.

Download all attachments as: .zip

Change History (3)

by George Merticariu, 9 years ago

Attachment: test.php added

comment:1 by Dimitar Misev, 9 years ago

Status: newaccepted

comment:2 by Dimitar Misev, 9 years ago

Resolution: fixed
Status: acceptedclosed
Note: See TracTickets for help on using tickets.