View Issue Details

IDProjectCategoryView StatusLast Update
0002699GNUnetregex librarypublic2013-12-24 20:55
ReporterBart Polot Assigned ToBart Polot  
PriorityimmediateSeverityminorReproducibilityrandom
Status closedResolutionfixed 
Product Version0.9.4 
Target Version0.10.0Fixed in Version0.10.0 
Summary0002699: Regex automaton creation performance is terrible with big regexes.
DescriptionFor 80k, > 30 min. For 120k > 110min.

#0 0x00007f807b45e684 in __memset_sse2 () from /usr/lib/libc.so.6
#1 0x00007f807d475e75 in GNUNET_xgrow_ (old=0x8e3fd40, elementSize=8, oldCount=0x8e3fd48, newCount=370, filename=0x7f807c841200 "regex.c", linenumber=2021)
    at common_allocation.c:326
#2 0x00007f807c83bc69 in nfa_closure_create (nfa=0xa024c0, s=0x2b4ad80, label=0x0) at regex.c:2021
#3 0x00007f807c83bf4d in nfa_closure_set_create (nfa=0xa024c0, states=0x8e3fd20, label=0x0) at regex.c:2073
#4 0x00007f807c83eec9 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x8e47270) at regex.c:2540
#5 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x8e470f0) at regex.c:2555
#6 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x8e46f70) at regex.c:2555
#7 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9056ed0) at regex.c:2555
#8 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9056d30) at regex.c:2555
#9 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9056fd0) at regex.c:2555
#10 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x8e8dd20) at regex.c:2555
#11 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x8ccb720) at regex.c:2555
#12 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x91f6340) at regex.c:2555
#13 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x8a8c850) at regex.c:2555
#14 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x849ad80) at regex.c:2555
#15 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x849ac60) at regex.c:2555
#16 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x849ab00) at regex.c:2555
#17 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x8d0b6b0) at regex.c:2555
#18 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x79fe140) at regex.c:2555
#19 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x761b1e0) at regex.c:2555
#20 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x7500330) at regex.c:2555
#21 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x7500190) at regex.c:2555
#22 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x75eb550) at regex.c:2555
#23 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x75eb3f0) at regex.c:2555
#24 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3e37520) at regex.c:2555
#25 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3e26820) at regex.c:2555
#26 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dd8ac0) at regex.c:2555
#27 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dd8980) at regex.c:2555
#28 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9c00) at regex.c:2555
#29 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9b20) at regex.c:2555
#30 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9a40) at regex.c:2555
#31 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9960) at regex.c:2555
#32 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9880) at regex.c:2555
#33 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc97a0) at regex.c:2555
#34 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc96c0) at regex.c:2555
#35 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc95e0) at regex.c:2555
#36 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9500) at regex.c:2555
#37 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9420) at regex.c:2555
#38 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9340) at regex.c:2555
#39 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9260) at regex.c:2555
#40 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9180) at regex.c:2555
#41 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc90a0) at regex.c:2555
#42 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc8fc0) at regex.c:2555
#43 0x00007f807c83f160 in GNUNET_REGEX_construct_dfa (
    regex=0x855c10 "GNVPN-0001-PAD(0010011001111011110000(0|1)*|010000101000000110100101(0|1)*|1", '0' <repeats 11 times>, "1001(0|1)*|1001001101000001(0|1)*|100100110100000100000001(0|1)*|100100110100000100000010(0|1)*|10010011010000010"..., len=88198, max_path_len=2) at regex.c:2616
#44 0x0000000000404575 in regex_put (regex=0x845790) at gnunet-service-mesh.c:1878
#45 0x00000000004045fb in announce_regex (cls=0x837a70, tc=0x7fff2a4995c0) at gnunet-service-mesh.c:1907
#46 0x00007f807d4acc11 in run_ready (rs=0x831160, ws=0x8311f0) at scheduler.c:597
#47 0x00007f807d4ad3dd in GNUNET_SCHEDULER_run (task=0x7f807d4ba074 <service_task>, task_cls=0x7fff2a499960) at scheduler.c:785
#48 0x00007f807d4bbb82 in GNUNET_SERVICE_run (argc=3, argv=0x7fff2a499bf8, service_name=0x424e92 "mesh", options=GNUNET_SERVICE_OPTION_NONE, task=0x41e28e <run>, task_cls=0x0)
---Type <return> to continue, or q <return> to quit---
    at service.c:1813
#49 0x000000000041ed2d in main (argc=3, argv=0x7fff2a499bf8) at gnunet-service-mesh.c:9022
Additional InformationSeveral seconds apart, after running for minutes at 100% CPU:
#0 0x00007f807c83bf7b in nfa_closure_set_create (nfa=0xa024c0, states=0x9f718a0, label=0x0) at regex.c:2080
#1 0x00007f807c83eec9 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9f716e0) at regex.c:2540
#2 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x8e6e4e0) at regex.c:2555
#3 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x8e6e300) at regex.c:2555
#4 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x8e7cba0) at regex.c:2555
#5 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x8e7c9a0) at regex.c:2555
#6 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9eb9ea0) at regex.c:2555
#7 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9056d30) at regex.c:2555
#8 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9056fd0) at regex.c:2555
#9 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x8e8dd20) at regex.c:2555
#10 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x8ccb720) at regex.c:2555
#11 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x91f6340) at regex.c:2555
#12 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x8a8c850) at regex.c:2555
#13 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x849ad80) at regex.c:2555
#14 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x849ac60) at regex.c:2555
#15 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x849ab00) at regex.c:2555
#16 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x8d0b6b0) at regex.c:2555
#17 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x79fe140) at regex.c:2555
#18 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x761b1e0) at regex.c:2555
#19 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x7500330) at regex.c:2555
#20 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x7500190) at regex.c:2555
#21 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x75eb550) at regex.c:2555
#22 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x75eb3f0) at regex.c:2555
#23 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3e37520) at regex.c:2555
#24 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3e26820) at regex.c:2555
#25 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dd8ac0) at regex.c:2555
#26 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dd8980) at regex.c:2555
#27 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9c00) at regex.c:2555
#28 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9b20) at regex.c:2555
#29 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9a40) at regex.c:2555
#30 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9960) at regex.c:2555
#31 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9880) at regex.c:2555
#32 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc97a0) at regex.c:2555
#33 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc96c0) at regex.c:2555
#34 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc95e0) at regex.c:2555
#35 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9500) at regex.c:2555
#36 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9420) at regex.c:2555
#37 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9340) at regex.c:2555
#38 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9260) at regex.c:2555
#39 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9180) at regex.c:2555
#40 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc90a0) at regex.c:2555
#41 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc8fc0) at regex.c:2555
#42 0x00007f807c83f160 in GNUNET_REGEX_construct_dfa (
    regex=0x855c10 "GNVPN-0001-PAD(0010011001111011110000(0|1)*|010000101000000110100101(0|1)*|1", '0' <repeats 11 times>, "1001(0|1)*|1001001101000001(0|1)*|100100110100000100000001(0|1)*|100100110100000100000010(0|1)*|10010011010000010"..., len=88198, max_path_len=2) at regex.c:2616
#43 0x0000000000404575 in regex_put (regex=0x845790) at gnunet-service-mesh.c:1878
#44 0x00000000004045fb in announce_regex (cls=0x837a70, tc=0x7fff2a4995c0) at gnunet-service-mesh.c:1907
#45 0x00007f807d4acc11 in run_ready (rs=0x831160, ws=0x8311f0) at scheduler.c:597
#46 0x00007f807d4ad3dd in GNUNET_SCHEDULER_run (task=0x7f807d4ba074 <service_task>, task_cls=0x7fff2a499960) at scheduler.c:785
#47 0x00007f807d4bbb82 in GNUNET_SERVICE_run (argc=3, argv=0x7fff2a499bf8, service_name=0x424e92 "mesh", options=GNUNET_SERVICE_OPTION_NONE, task=0x41e28e <run>, task_cls=0x0)
    at service.c:1813
#48 0x000000000041ed2d in main (argc=3, argv=0x7fff2a499bf8) at gnunet-service-mesh.c:9022


(gdb) bt
#0 0x00007f807b45e41c in __memset_sse2 () from /usr/lib/libc.so.6
#1 0x00007f807d4758e4 in GNUNET_xmalloc_unchecked_ (size=5224, filename=0x7f807c841200 "regex.c", linenumber=2021) at common_allocation.c:147
#2 0x00007f807d475569 in GNUNET_xmalloc_ (size=5224, filename=0x7f807c841200 "regex.c", linenumber=2021) at common_allocation.c:71
#3 0x00007f807d475e5c in GNUNET_xgrow_ (old=0x9620570, elementSize=8, oldCount=0x9620578, newCount=653, filename=0x7f807c841200 "regex.c", linenumber=2021)
    at common_allocation.c:325
#4 0x00007f807c83bc69 in nfa_closure_create (nfa=0xa024c0, s=0x2bf9980, label=0x0) at regex.c:2021
#5 0x00007f807c83bf4d in nfa_closure_set_create (nfa=0xa024c0, states=0x9620530, label=0x0) at regex.c:2073
#6 0x00007f807c83eec9 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9620390) at regex.c:2540
#7 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9618bd0) at regex.c:2555
#8 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9618a00) at regex.c:2555
#9 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x91d56d0) at regex.c:2555
#10 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x91d5460) at regex.c:2555
#11 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x91d5270) at regex.c:2555
#12 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x92f8000) at regex.c:2555
#13 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x92f7ba0) at regex.c:2555
#14 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x91f6340) at regex.c:2555
#15 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x8a8c850) at regex.c:2555
#16 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x849ad80) at regex.c:2555
#17 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x849ac60) at regex.c:2555
#18 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x849ab00) at regex.c:2555
#19 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x8d0b6b0) at regex.c:2555
#20 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x79fe140) at regex.c:2555
#21 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x761b1e0) at regex.c:2555
#22 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x7500330) at regex.c:2555
#23 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x7500190) at regex.c:2555
#24 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x75eb550) at regex.c:2555
#25 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x75eb3f0) at regex.c:2555
#26 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3e37520) at regex.c:2555
#27 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3e26820) at regex.c:2555
#28 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dd8ac0) at regex.c:2555
#29 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dd8980) at regex.c:2555
#30 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9c00) at regex.c:2555
#31 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9b20) at regex.c:2555
#32 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9a40) at regex.c:2555
#33 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9960) at regex.c:2555
#34 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9880) at regex.c:2555
#35 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc97a0) at regex.c:2555
#36 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc96c0) at regex.c:2555
#37 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc95e0) at regex.c:2555
#38 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9500) at regex.c:2555
#39 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9420) at regex.c:2555
#40 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9340) at regex.c:2555
#41 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9260) at regex.c:2555
#42 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9180) at regex.c:2555
#43 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc90a0) at regex.c:2555
#44 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc8fc0) at regex.c:2555
#45 0x00007f807c83f160 in GNUNET_REGEX_construct_dfa (
    regex=0x855c10 "GNVPN-0001-PAD(0010011001111011110000(0|1)*|010000101000000110100101(0|1)*|1", '0' <repeats 11 times>, "1001(0|1)*|1001001101000001(0|1)*|100100110100000100000001(0|1)*|100100110100000100000010(0|1)*|10010011010000010"..., len=88198, max_path_len=2) at regex.c:2616
#46 0x0000000000404575 in regex_put (regex=0x845790) at gnunet-service-mesh.c:1878
#47 0x00000000004045fb in announce_regex (cls=0x837a70, tc=0x7fff2a4995c0) at gnunet-service-mesh.c:1907
#48 0x00007f807d4acc11 in run_ready (rs=0x831160, ws=0x8311f0) at scheduler.c:597

(gdb) up 4
#4 0x00007f807c83bc69 in nfa_closure_create (nfa=0xa024c0, s=0x2bf9980, label=0x0) at regex.c:2021
2021 GNUNET_array_append (cls->states, cls->len, clsstate);
(gdb) p *nfa
$1 = {prev = 0x0, next = 0x0, start = 0x86b4a0, end = 0x3d9dc80, state_count = 329166, states_head = 0x86b4a0, states_tail = 0x3bb7080, type = NFA,
  regex = 0x3d9dea0 "GNVPN-0001-PAD(0010011001111011110000(0|1)*|010000101000000110100101(0|1)*|1", '0' <repeats 11 times>, "1001(0|1)*|1001001101000001(0|1)*|100100110100000100000001(0|1)*|100100110100000100000010(0|1)*|10010011010000010"..., canonical_regex = 0x0, is_multistrided = 0}
(gdb) p *s
$2 = {prev = 0x2bf98a0, next = 0x2bf9ae0, prev_SS = 0x0, next_SS = 0x0, prev_ST = 0x0, next_ST = 0x0, id = 109987, traversal_id = 114085, accepting = 0, marked = 0,
  contained = 0, scc_id = 0, index = -1, lowlink = -1, name = 0x2bf9a60 "s109987", hash = {bits = {0 <repeats 16 times>}}, dfs_id = 114082, proof = 0x0, transition_count = 1,
  transitions_head = 0x2bf9fc0, transitions_tail = 0x2bf9fc0, incoming_transition_count = 0, nfa_set = 0x0}
(gdb) up 1
#5 0x00007f807c83bf4d in nfa_closure_set_create (nfa=0xa024c0, states=0x9620530, label=0x0) at regex.c:2073
2073 sset = nfa_closure_create (nfa, s, label);
(gdb) p *nfa
$3 = {prev = 0x0, next = 0x0, start = 0x86b4a0, end = 0x3d9dc80, state_count = 329166, states_head = 0x86b4a0, states_tail = 0x3bb7080, type = NFA,
  regex = 0x3d9dea0 "GNVPN-0001-PAD(0010011001111011110000(0|1)*|010000101000000110100101(0|1)*|1", '0' <repeats 11 times>, "1001(0|1)*|1001001101000001(0|1)*|100100110100000100000001(0|1)*|100100110100000100000010(0|1)*|10010011010000010"..., canonical_regex = 0x0, is_multistrided = 0}
(gdb) p *States
No symbol "States" in current context.
(gdb) p *states
$4 = {states = 0x9620550, len = 1}
(gdb) p *states->states
$5 = (struct GNUNET_REGEX_State *) 0x2bf9980
(gdb) p **states->states
$6 = {prev = 0x2bf98a0, next = 0x2bf9ae0, prev_SS = 0x0, next_SS = 0x0, prev_ST = 0x0, next_ST = 0x0, id = 109987, traversal_id = 114085, accepting = 0, marked = 0,
  contained = 0, scc_id = 0, index = -1, lowlink = -1, name = 0x2bf9a60 "s109987", hash = {bits = {0 <repeats 16 times>}}, dfs_id = 114082, proof = 0x0, transition_count = 1,
  transitions_head = 0x2bf9fc0, transitions_tail = 0x2bf9fc0, incoming_transition_count = 0, nfa_set = 0x0}
(gdb)
TagsNo tags attached.

Activities

Bart Polot

2012-12-13 13:02

reporter   ~0006688

Seems to use (leak?) 1M of RAM every 3 seconds.

Bart Polot

2012-12-13 13:04

reporter   ~0006689

After some more time:

0x00007f807d475af5 in GNUNET_xfree_ (ptr=0xb1d20f0, filename=0x7f807c841200 "regex.c", linenumber=2087) at common_allocation.c:231
231 base[i] = baadfood;
(gdb) bt
#0 0x00007f807d475af5 in GNUNET_xfree_ (ptr=0xb1d20f0, filename=0x7f807c841200 "regex.c", linenumber=2087) at common_allocation.c:231
#1 0x00007f807d475ed4 in GNUNET_xgrow_ (old=0x9ca81e0, elementSize=8, oldCount=0x9ca81e8, newCount=1888, filename=0x7f807c841200 "regex.c", linenumber=2087)
    at common_allocation.c:334
#2 0x00007f807c83bfee in nfa_closure_set_create (nfa=0xa024c0, states=0x9ca7da0, label=0x0) at regex.c:2087
#3 0x00007f807c83eec9 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9b36120) at regex.c:2540
#4 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9983770) at regex.c:2555
#5 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9983450) at regex.c:2555
#6 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9983190) at regex.c:2555
#7 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9b36220) at regex.c:2555
#8 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9b2e650) at regex.c:2555
#9 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9962ca0) at regex.c:2555
#10 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x93adab0) at regex.c:2555
#11 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x849ab00) at regex.c:2555
#12 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x8d0b6b0) at regex.c:2555
#13 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x79fe140) at regex.c:2555
#14 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x761b1e0) at regex.c:2555
#15 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x7500330) at regex.c:2555
#16 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x7500190) at regex.c:2555
#17 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x75eb550) at regex.c:2555
#18 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x75eb3f0) at regex.c:2555
#19 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3e37520) at regex.c:2555
#20 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3e26820) at regex.c:2555
#21 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dd8ac0) at regex.c:2555
#22 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dd8980) at regex.c:2555
#23 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9c00) at regex.c:2555
#24 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9b20) at regex.c:2555
#25 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9a40) at regex.c:2555
#26 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9960) at regex.c:2555
#27 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9880) at regex.c:2555
#28 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc97a0) at regex.c:2555
#29 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc96c0) at regex.c:2555
#30 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc95e0) at regex.c:2555
#31 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9500) at regex.c:2555
#32 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9420) at regex.c:2555
#33 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9340) at regex.c:2555
#34 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9260) at regex.c:2555
#35 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9180) at regex.c:2555
#36 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc90a0) at regex.c:2555
#37 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc8fc0) at regex.c:2555
#38 0x00007f807c83f160 in GNUNET_REGEX_construct_dfa (
    regex=0x855c10 "GNVPN-0001-PAD(0010011001111011110000(0|1)*|010000101000000110100101(0|1)*|1", '0' <repeats 11 times>, "1001(0|1)*|1001001101000001(0|1)*|100100110100000100000001(0|1)*|100100110100000100000010(0|1)*|10010011010000010"..., len=88198, max_path_len=2) at regex.c:2616
#39 0x0000000000404575 in regex_put (regex=0x845790) at gnunet-service-mesh.c:1878
#40 0x00000000004045fb in announce_regex (cls=0x837a70, tc=0x7fff2a4995c0) at gnunet-service-mesh.c:1907
#41 0x00007f807d4acc11 in run_ready (rs=0x831160, ws=0x8311f0) at scheduler.c:597
#42 0x00007f807d4ad3dd in GNUNET_SCHEDULER_run (task=0x7f807d4ba074 <service_task>, task_cls=0x7fff2a499960) at scheduler.c:785
#43 0x00007f807d4bbb82 in GNUNET_SERVICE_run (argc=3, argv=0x7fff2a499bf8, service_name=0x424e92 "mesh", options=GNUNET_SERVICE_OPTION_NONE, task=0x41e28e <run>, task_cls=0x0)
    at service.c:1813
#44 0x000000000041ed2d in main (argc=3, argv=0x7fff2a499bf8) at gnunet-service-mesh.c:9022


Program received signal SIGINT, Interrupt.
0x00007f807c83bf84 in nfa_closure_set_create (nfa=0xa024c0, states=0x9fdd0b0, label=0x0) at regex.c:2080
2080 if (sset->states[j]->id == cls->states[k]->id)
(gdb) bt
#0 0x00007f807c83bf84 in nfa_closure_set_create (nfa=0xa024c0, states=0x9fdd0b0, label=0x0) at regex.c:2080
#1 0x00007f807c83eec9 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9d7fae0) at regex.c:2540
#2 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9d7f940) at regex.c:2555
#3 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9d7f7a0) at regex.c:2555
#4 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9d7f660) at regex.c:2555
#5 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9d7f540) at regex.c:2555
#6 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9fdca90) at regex.c:2555
#7 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0xa126a00) at regex.c:2555
#8 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9da6d50) at regex.c:2555
#9 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9da6940) at regex.c:2555
#10 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9cd7160) at regex.c:2555
#11 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9cd6a80) at regex.c:2555
#12 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9fa3560) at regex.c:2555
#13 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0xad32030) at regex.c:2555
#14 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x9d3cb90) at regex.c:2555
#15 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x8d0b6b0) at regex.c:2555
#16 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x79fe140) at regex.c:2555
#17 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x761b1e0) at regex.c:2555
#18 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x7500330) at regex.c:2555
#19 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x7500190) at regex.c:2555
#20 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x75eb550) at regex.c:2555
#21 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x75eb3f0) at regex.c:2555
#22 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3e37520) at regex.c:2555
#23 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3e26820) at regex.c:2555
#24 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dd8ac0) at regex.c:2555
#25 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dd8980) at regex.c:2555
#26 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9c00) at regex.c:2555
#27 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9b20) at regex.c:2555
#28 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9a40) at regex.c:2555
#29 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9960) at regex.c:2555
#30 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9880) at regex.c:2555
#31 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc97a0) at regex.c:2555
#32 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc96c0) at regex.c:2555
#33 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc95e0) at regex.c:2555
#34 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9500) at regex.c:2555
#35 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9420) at regex.c:2555
#36 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9340) at regex.c:2555
#37 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9260) at regex.c:2555
#38 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc9180) at regex.c:2555
#39 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc90a0) at regex.c:2555
#40 0x00007f807c83ef84 in construct_dfa_states (ctx=0x7fff2a499500, nfa=0xa024c0, dfa=0xd7df40, dfa_state=0x3dc8fc0) at regex.c:2555
#41 0x00007f807c83f160 in GNUNET_REGEX_construct_dfa (
    regex=0x855c10 "GNVPN-0001-PAD(0010011001111011110000(0|1)*|010000101000000110100101(0|1)*|1", '0' <repeats 11 times>, "1001(0|1)*|1001001101000001(0|1)*|100100110100000100000001(0|1)*|100100110100000100000010(0|1)*|10010011010000010"..., len=88198, max_path_len=2) at regex.c:2616
#42 0x0000000000404575 in regex_put (regex=0x845790) at gnunet-service-mesh.c:1878
#43 0x00000000004045fb in announce_regex (cls=0x837a70, tc=0x7fff2a4995c0) at gnunet-service-mesh.c:1907
#44 0x00007f807d4acc11 in run_ready (rs=0x831160, ws=0x8311f0) at scheduler.c:597
#45 0x00007f807d4ad3dd in GNUNET_SCHEDULER_run (task=0x7f807d4ba074 <service_task>, task_cls=0x7fff2a499960) at scheduler.c:785
#46 0x00007f807d4bbb82 in GNUNET_SERVICE_run (argc=3, argv=0x7fff2a499bf8, service_name=0x424e92 "mesh", options=GNUNET_SERVICE_OPTION_NONE, task=0x41e28e <run>, task_cls=0x0)
    at service.c:1813
#47 0x000000000041ed2d in main (argc=3, argv=0x7fff2a499bf8) at gnunet-service-mesh.c:9022

Bart Polot

2012-12-13 13:06

reporter   ~0006690

The other wild mesh process:
0x00007fe479f77b05 in GNUNET_xfree_ (ptr=0x13835e10, filename=0x7fe479343200 "regex.c", linenumber=2021) at common_allocation.c:230
230 for (i=0;i<s/8;i++)
(gdb) bt
#0 0x00007fe479f77b05 in GNUNET_xfree_ (ptr=0x13835e10, filename=0x7fe479343200 "regex.c", linenumber=2021) at common_allocation.c:230
#1 0x00007fe479f77ed4 in GNUNET_xgrow_ (old=0xfad8330, elementSize=8, oldCount=0xfad8338, newCount=2989, filename=0x7fe479343200 "regex.c", linenumber=2021)
    at common_allocation.c:334
#2 0x00007fe47933dc69 in nfa_closure_create (nfa=0xc91da0, s=0x3edd720, label=0x0) at regex.c:2021
#3 0x00007fe47933df4d in nfa_closure_set_create (nfa=0xc91da0, states=0xfad7f30, label=0x0) at regex.c:2073
#4 0x00007fe479340ec9 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0xf9c9140) at regex.c:2540
#5 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0xfad8030) at regex.c:2555
#6 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0xf93aa60) at regex.c:2555
#7 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0xf93a870) at regex.c:2555
#8 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0xf91b890) at regex.c:2555
#9 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0xf9be980) at regex.c:2555
#10 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0xf6ab710) at regex.c:2555
#11 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0xf664ef0) at regex.c:2555
#12 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0xf664df0) at regex.c:2555
#13 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0xf64bc20) at regex.c:2555
#14 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0xf64bac0) at regex.c:2555
#15 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0xfbf5600) at regex.c:2555
#16 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0xf68cfb0) at regex.c:2555
#17 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0xfb9f690) at regex.c:2555
#18 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0xe72cb30) at regex.c:2555
#19 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0x10e941e0) at regex.c:2555
#20 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0xe6728f0) at regex.c:2555
#21 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0xe3bc240) at regex.c:2555
#22 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0xcf29640) at regex.c:2555
#23 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0xcf294c0) at regex.c:2555
#24 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0x57ef590) at regex.c:2555
#25 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0x57de720) at regex.c:2555
#26 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0x57de640) at regex.c:2555
#27 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0x57de560) at regex.c:2555
#28 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0x57de480) at regex.c:2555
#29 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0x57de3a0) at regex.c:2555
#30 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0x57de2c0) at regex.c:2555
#31 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0x57de1e0) at regex.c:2555
#32 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0x57de100) at regex.c:2555
#33 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0x57de020) at regex.c:2555
#34 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0x57ddf40) at regex.c:2555
#35 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0x57dde60) at regex.c:2555
#36 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0x57ddd80) at regex.c:2555
#37 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0x57ddca0) at regex.c:2555
#38 0x00007fe479340f84 in construct_dfa_states (ctx=0x7fff3b9dd5f0, nfa=0xc91da0, dfa=0xca70c0, dfa_state=0x57ddbc0) at regex.c:2555
#39 0x00007fe479341160 in GNUNET_REGEX_construct_dfa (
    regex=0x964c70 "GNVPN-0001-PAD(000000010000000100000001(0|1)*|000001010000000100100(0|1)*|000001010000000100111(0|1)*|000001010000000101101(0|1)*|000001010000000101101010(0|1)*|000001010000000101110(0|1)*|00000101000"..., len=129443, max_path_len=2) at regex.c:2616
#40 0x0000000000404575 in regex_put (regex=0x9547f0) at gnunet-service-mesh.c:1878
#41 0x00000000004045fb in announce_regex (cls=0x945a20, tc=0x7fff3b9dd6b0) at gnunet-service-mesh.c:1907
#42 0x00007fe479faec11 in run_ready (rs=0x93f160, ws=0x93f1f0) at scheduler.c:597
#43 0x00007fe479faf3dd in GNUNET_SCHEDULER_run (task=0x7fe479fbc074 <service_task>, task_cls=0x7fff3b9dda50) at scheduler.c:785
#44 0x00007fe479fbdb82 in GNUNET_SERVICE_run (argc=3, argv=0x7fff3b9ddce8, service_name=0x424e92 "mesh", options=GNUNET_SERVICE_OPTION_NONE, task=0x41e28e <run>, task_cls=0x0)
    at service.c:1813
#45 0x000000000041ed2d in main (argc=3, argv=0x7fff3b9ddce8) at gnunet-service-mesh.c:9022


Both seem to have trouble with big regexes (> 65k) which previously just weren't delivered to the service.

Bart Polot

2012-12-13 13:19

reporter   ~0006691

Could be just that is _VERY_ slow. One process (with regex.len = 80k) is gone. Waiting for the other one (len = 120k).

Bart Polot

2012-12-13 13:24

reporter   ~0006692

Last edited: 2012-12-13 16:05

Long regex:

(gdb) set print repeats 0
(gdb) set print elements 0
(gdb) set height 0
(gdb) p regex
$3 = 0x964c70 [EDITED]

Bart Polot

2012-12-13 16:02

reporter   ~0006698

The regex in the previous note is wrong. There are correct example regexes in perf-data.tar.gz in the regex folder as of r25452.

Christian Grothoff

2012-12-18 13:24

manager   ~0006725

Performance should have improved significantly over the last few days. At this point, I don't know what else can be done -- other than not generating such huge regexes on the application side. For that, I have several ideas that we still should look into.

Bart Polot

2012-12-20 14:33

reporter   ~0006739

TODO:
- change to hex
- fix regex combining

Bart Polot

2013-02-04 14:26

reporter   ~0006832

$ cat hd1u
110110010001101000100(0|1)*
1101100100011010001010(0|1)*
11011001000110100010110(0|1)*
110110010001101000101110(0|1)*
110110010001101000101111(0|1)*
110110010001101011111111(0|1)*
11011001010010011111000(0|1)*
11011001010010011111(0|1)*
1101100101001001111101(0|1)*
grothoff@spec:~/svn/gnunet/src/regex$ ./perf-regex hd1u 1
using file hd1u, size 266
Dec 15 01:12:29-183919 perf-regex-5041 ERROR Could not parse regex:
`GNVPN-0001-PAD((1(1(0(1(1(0(0(1(0(1(0(0(1(0(0(1(1(1(1(1(|0(1|00))))))))))))|0(0(1(1(0(1(0(11111111|0(0(1(0(1(1(1(1|0)|0)|0)|0))))))))))))))))))))))(0|1)*'
Dec 15 01:12:29-184019 perf-regex-5041 ERROR Cannot append '|' to nothing
Dec 15 01:12:29-184131 perf-regex-5041 ERROR Could not create DFA,
because NFA creation failed


Clearly a generator problem: see "(|0" in the regex...

Bart Polot

2013-02-04 14:26

reporter   ~0006833

$ cat hd1u52
11011001010010011111(0|1)*
1101100101001001111101(0|1)*
$ ./perf-regex hd1u52 1
using file hd1u52, size 56
Combined regex:
GNVPN-0001-PAD((1(1(0(1(1(0(0(1(0(1(0(0(1(0(0(1(1(1(1(1(01))))))))))))))))))))))(0|1)*
Dec 15 00:36:03-579373 perf-regex-1962 ERROR Could not parse regex:
`GNVPN-0001-PAD((1(1(0(1(1(0(0(1(0(1(0(0(1(0(0(1(1(1(1(1(01))))))))))))))))))))))(0|1)*'
Dec 15 00:36:03-579426 perf-regex-1962 ERROR Unbalanced parenthesis
Dec 15 00:36:03-579483 perf-regex-1962 ERROR Could not create DFA,
because NFA creation failed

Bart Polot

2013-02-05 19:05

reporter   ~0006839

From last regexes:

[bart@saturn ~]$ echo 'GNVPN-0001-PAD((1(1(0(1(1(0(0(1(0(1(0(0(1(0(0(1(1(1(1(1(01))))))))))))))))))))))(0|1)*' | sed -e 's/[^)]//g' | wc
    1 1 24
                                                                 
[bart@saturn ~]$ echo 'GNVPN-0001-PAD((1(1(0(1(1(0(0(1(0(1(0(0(1(0(0(1(1(1(1(1(01))))))))))))))))))))))(0|1)*' | sed -e 's/[^(]//g' | wc
    1 1 24

And in fact, now does not complain...

Bart Polot

2013-02-15 20:05

reporter   ~0006881

Fixed in r26143.

Issue History

Date Modified Username Field Change
2012-12-13 13:01 Bart Polot New Issue
2012-12-13 13:01 Bart Polot Status new => assigned
2012-12-13 13:01 Bart Polot Assigned To => Bart Polot
2012-12-13 13:02 Bart Polot Note Added: 0006688
2012-12-13 13:04 Bart Polot Note Added: 0006689
2012-12-13 13:06 Bart Polot Note Added: 0006690
2012-12-13 13:19 Bart Polot Note Added: 0006691
2012-12-13 13:24 Bart Polot Note Added: 0006692
2012-12-13 16:02 Bart Polot Note Added: 0006698
2012-12-13 16:03 Bart Polot Summary Regex is stuck (in an infnite loop?) even after mesh shutdown => Regex automaton creation performance is terrible with big regexes.
2012-12-13 16:03 Bart Polot Description Updated
2012-12-13 16:05 Bart Polot Note Edited: 0006692
2012-12-18 13:24 Christian Grothoff Note Added: 0006725
2012-12-20 14:33 Bart Polot Note Added: 0006739
2012-12-21 20:33 Christian Grothoff Priority low => urgent
2012-12-21 20:33 Christian Grothoff Priority urgent => immediate
2012-12-21 20:33 Christian Grothoff Target Version => 0.9.5
2013-02-04 14:26 Bart Polot Note Added: 0006832
2013-02-04 14:26 Bart Polot Note Added: 0006833
2013-02-05 13:18 Christian Grothoff Target Version 0.9.5 => 0.10.1
2013-02-05 19:05 Bart Polot Note Added: 0006839
2013-02-15 20:05 Bart Polot Note Added: 0006881
2013-02-15 20:05 Bart Polot Status assigned => resolved
2013-02-15 20:05 Bart Polot Fixed in Version => 0.10.0
2013-02-15 20:05 Bart Polot Resolution open => fixed
2013-03-09 14:26 Christian Grothoff Target Version 0.10.1 => 0.10.0
2013-12-24 20:55 Christian Grothoff Status resolved => closed