View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0002699 | GNUnet | regex library | public | 2012-12-13 13:01 | 2013-12-24 20:55 |
| Reporter | Bart Polot | Assigned To | Bart Polot | ||
| Priority | immediate | Severity | minor | Reproducibility | random |
| Status | closed | Resolution | fixed | ||
| Product Version | 0.9.4 | ||||
| Target Version | 0.10.0 | Fixed in Version | 0.10.0 | ||
| Summary | 0002699: Regex automaton creation performance is terrible with big regexes. | ||||
| Description | For 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 Information | Several 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) | ||||
| Tags | No tags attached. | ||||
|
|
Seems to use (leak?) 1M of RAM every 3 seconds. |
|
|
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 |
|
|
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. |
|
|
Could be just that is _VERY_ slow. One process (with regex.len = 80k) is gone. Waiting for the other one (len = 120k). |
|
|
Long regex: (gdb) set print repeats 0 (gdb) set print elements 0 (gdb) set height 0 (gdb) p regex $3 = 0x964c70 [EDITED] |
|
|
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. |
|
|
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. |
|
|
TODO: - change to hex - fix regex combining |
|
|
$ 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... |
|
|
$ 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 |
|
|
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... |
|
|
Fixed in r26143. |
| 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 |