the-data-lab / GraphOne

"GraphOne: A Data Store for Real-time Analytics on Evolving Graphs", Usenix FAST'19
GNU General Public License v3.0
58 stars 31 forks source link

Regressions? #18

Closed whatsthecraic closed 4 years ago

whatsthecraic commented 4 years ago

Hi there, we're hitting a series of validation regressions. Currently, I am not even able to run the test suite;

./graphone64 
Threads Count = 31
graphone64: /home/dean/workspace/graphone/onedata/onestr.cpp:39: void strkv_t::setup(tid_t, vid_t): Assertion `v_count' failed.

When executing the previous repro with:

g++ -std=c++17 repro.cpp -DOVER_COMMIT -DDEL -DTBB -DPLAIN_GRAPH -DB64 -I${PATH_GRAPHONE}/src -I${PATH_GRAPHONE}/gview -I${PATH_GRAPHONE}/include -I${PATH_GRAPHONE}/onedata -I${PATH_GRAPHONE}/analytics -O0 -g3 -fno-limit-debug-info -Wall  -fopenmp -pthread ${PATH_GRAPHONE_BUILD}/src/libsrc64.a ${PATH_GRAPHONE_BUILD}/onedata/libonedata64.a -ltbb -o repro.out

The program fails with the assertion:

[dean@ws20lnx] /tmp: ./repro.out 
Random seed: 1810670094
Inserting 33 vertices ...
Generating the stream of edges ... 
Updating 90 edges with 1 threads ... 
[Thread #30444] ZzZ ... 
repro.out: /home/dean/workspace/graphone//onedata/onegraph.h:98: void onegraph_t<T>::decrement_count_noatomic(vid_t, degree_t) [with T = dst_weight_t<__univeral_type>; vid_t = long unsigned int; degree_t = int]: Assertion `(curr->degree.del_count < MAX_DEL_DEGREE) && (curr->degree.del_count + count) >= count' failed.
Aborted (core dumped)

What has changed?

GCC v10.1, linux, tip of master

Thanks, Dean

whatsthecraic commented 4 years ago

Hey there, much simpler repro: https://gist.github.com/whatsthecraic/d739d59c804643cb9faa96abc2cef668

pradeep-k commented 4 years ago

Thanks for the repro code, I will take a look today evening.

pradeep-k commented 4 years ago

The flags that are passed should be OR'ed instead of AND'ed.

Your code: auto* view = create_static_view(get_graphone_graph(), PRIVATE_MASK & SIMPLE_MASK); // global

Correct code: auto* view = create_static_view(get_graphone_graph(), PRIVATE_MASK|SIMPLE_MASK); // global

Please let me know, if other testcases are now passing or have some other issues.

whatsthecraic commented 4 years ago

Hi @pradeep-k ,

ooops, sorry for the mistake, I am not sure what I was thinking when I wrote it :-) Yes, that's all.

Thanks, Dean

pradeep-k commented 4 years ago

No problem. Do file new bugs when you encounter any. I will try my best to fix them asap.