View Issue Details

IDProjectCategoryView StatusLast Update
0001976GNUnetdatastore servicepublic2011-12-26 21:28
ReporterLRN Assigned ToChristian Grothoff Due Date
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Product VersionGit master 
Target Version0.9.1Fixed in Version0.9.1 
Summary0001976: Crash in datastore service
DescriptionI've been twiddling with config options (i think i've made dht cache size to be too large), and after a restart i've got this crash. Crashinfo12.txt is attached.
Additional InformationAttaching to process 9564
[New Thread 9564.0x3c6c]
[New Thread 9564.0x3f8c]
[New Thread 9564.0x2e3c]
Reading symbols from d:\progs\gnunet\bin\gnunet-service-datastore.exe...done.
[Switching to Thread 9564.0x2e3c]
(gdb) bt
#0 0x77ad000d in ntdll!LdrFindResource_U () from E:\Windows\SysWOW64\ntdll.dll
#1 0x77b5f826 in ntdll!RtlQueryTimeZoneInformation () from E:\Windows\SysWOW64\ntdll.dll
#2 0x338fe6e5 in ?? ()
#3 0x00000000 in ?? ()
(gdb) c
Continuing.

Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 9564.0x3c6c]
0x7522280d in KERNELBASE!DeleteAce () from E:\Windows\syswow64\KernelBase.dll
(gdb) bt
#0 0x7522280d in KERNELBASE!DeleteAce () from E:\Windows\syswow64\KernelBase.dll
#1 0x6be46564 in GNUNET_abort () at common_logging.c:271
#2 0x6be45b65 in GNUNET_xmalloc_unchecked_ (size=2147483648, filename=0x6be89be0 "container_bloomfilter.c", linenumber=485)
    at common_allocation.c:139
#3 0x6be5119a in GNUNET_CONTAINER_bloomfilter_load (filename=0x1dc4e98 "E:\\Users\\LRN\\\\.gnunet\\fs\\bloomfilter", size=2147483648, k=5)
    at container_bloomfilter.c:485
#4 0x0040559d in _fu161__skip_log () at gnunet-service-datastore.c:1509
#5 0x6be7f59a in service_task (cls=0x28fe18, tc=0x28fc80) at service.c:1437
#6 0x6be7458f in run_ready (rs=0x1dbd548, ws=0x1dc3680) at scheduler.c:684
#7 0x6be74cfd in GNUNET_SCHEDULER_run (task=0x6be7f05a <service_task>, task_cls=0x28fe18) at scheduler.c:874
#8 0x6be7fd3e in GNUNET_SERVICE_run (argc=3, argv=0x1dbac40, serviceName=0x408894 "datastore", opt=GNUNET_SERVICE_OPTION_NONE,
    task=0x4052e6 <run>, task_cls=0x0) at service.c:1669
#9 0x0040582b in main (argc=3, argv=0x1dbac40) at gnunet-service-datastore.c:1564
(gdb) up 4
#4 0x0040559d in _fu161__skip_log () at gnunet-service-datastore.c:1509
1509 filter = GNUNET_CONTAINER_bloomfilter_load (fn, bf_size, 5); /* approx. 3% false positives at max use */
(gdb) p bf_size
$1 = 1250000000
TagsNo tags attached.
Attached Files
crashinfo12.txt (1,994 bytes)   
Attaching to process 9564
[New Thread 9564.0x3c6c]
[New Thread 9564.0x3f8c]
[New Thread 9564.0x2e3c]
Reading symbols from d:\progs\gnunet\bin\gnunet-service-datastore.exe...done.
[Switching to Thread 9564.0x2e3c]
(gdb) bt
#0  0x77ad000d in ntdll!LdrFindResource_U () from E:\Windows\SysWOW64\ntdll.dll
#1  0x77b5f826 in ntdll!RtlQueryTimeZoneInformation () from E:\Windows\SysWOW64\ntdll.dll
#2  0x338fe6e5 in ?? ()
#3  0x00000000 in ?? ()
(gdb) c
Continuing.

Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 9564.0x3c6c]
0x7522280d in KERNELBASE!DeleteAce () from E:\Windows\syswow64\KernelBase.dll
(gdb) bt
#0  0x7522280d in KERNELBASE!DeleteAce () from E:\Windows\syswow64\KernelBase.dll
#1  0x6be46564 in GNUNET_abort () at common_logging.c:271
#2  0x6be45b65 in GNUNET_xmalloc_unchecked_ (size=2147483648, filename=0x6be89be0 "container_bloomfilter.c", linenumber=485)
    at common_allocation.c:139
#3  0x6be5119a in GNUNET_CONTAINER_bloomfilter_load (filename=0x1dc4e98 "E:\\Users\\LRN\\\\.gnunet\\fs\\bloomfilter", size=2147483648, k=5)
    at container_bloomfilter.c:485
#4  0x0040559d in _fu161__skip_log () at gnunet-service-datastore.c:1509
#5  0x6be7f59a in service_task (cls=0x28fe18, tc=0x28fc80) at service.c:1437
#6  0x6be7458f in run_ready (rs=0x1dbd548, ws=0x1dc3680) at scheduler.c:684
#7  0x6be74cfd in GNUNET_SCHEDULER_run (task=0x6be7f05a <service_task>, task_cls=0x28fe18) at scheduler.c:874
#8  0x6be7fd3e in GNUNET_SERVICE_run (argc=3, argv=0x1dbac40, serviceName=0x408894 "datastore", opt=GNUNET_SERVICE_OPTION_NONE,
    task=0x4052e6 <run>, task_cls=0x0) at service.c:1669
#9  0x0040582b in main (argc=3, argv=0x1dbac40) at gnunet-service-datastore.c:1564
(gdb) up 4
#4  0x0040559d in _fu161__skip_log () at gnunet-service-datastore.c:1509
1509        filter = GNUNET_CONTAINER_bloomfilter_load (fn, bf_size, 5);        /* approx. 3% false positives at max use */
(gdb) p bf_size
$1 = 1250000000
(gdb)
crashinfo12.txt (1,994 bytes)   

Activities

LRN

2011-12-04 02:21

reporter   ~0005008

Last edited: 2011-12-04 02:27

OK, it was because i've set datastore quota to 40 GB

The assertion that fails is:
  GNUNET_assert_at (size < INT_MAX, filename, linenumber);

Question:
Why do we limit it at INT_MAX? malloc() takes size_t, which is at least UINT_MAX, and maybe even larger.

Christian Grothoff

2011-12-06 14:14

manager   ~0005011

Fixed in SVN 18460.

Issue History

Date ModifiedUsernameFieldChange
2011-12-04 02:18LRNNew Issue
2011-12-04 02:18LRNFile Added: crashinfo12.txt
2011-12-04 02:19LRNCategorydatacache library => datastore service
2011-12-04 02:21LRNNote Added: 0005008
2011-12-04 02:27LRNNote Edited: 0005008
2011-12-04 11:24Christian GrothoffAssigned To => Christian Grothoff
2011-12-04 11:24Christian GrothoffStatusnew => assigned
2011-12-06 14:14Christian GrothoffNote Added: 0005011
2011-12-06 14:14Christian GrothoffStatusassigned => resolved
2011-12-06 14:14Christian GrothoffFixed in Version => 0.9.1
2011-12-06 14:14Christian GrothoffResolutionopen => fixed
2011-12-06 14:15Christian GrothoffTarget Version => 0.9.1
2011-12-26 21:28Christian GrothoffStatusresolved => closed