cmuparlay/pbbsbench

octTree throw segmentation fault when batch deletion enabled

RomaLzhih opened this issue · 5 comments

Hi developers,

I am currently running the benchmark\nearestNeighbors\octTree. After uncommenting the batch_deletion in the driver file. It throws a segmentation fault within the recursive deletion function, i.e.,

$ ./neighbors -d 3 -k 100 test.in 
ANN: build tree: 0.1763
Segmentation fault (core dumped)

The inputs are generated using the default point generator provided, i.e., ./randPoints.

I am using g++ 12.2.1 as a compiler on Linux.

Reproduce procedure:

// uncomment the function above
cd testData/geometryData/
make clean; make
./randPoints -s -d 3 10000000 test.in
cp test.in ../../benchmarks/nearestNeighbors/octTree
cd ../../benchmarks/nearestNeighbors/octTree
make clean; make
./neighbors -d 3 -k 100 test.in 

Any suggestions would be helpful. Thanks!

Thanks for your reply! Unfortunately, it still does not work on my machine. Some other settings may be needed. :(

BTW, going back to branch d219d02 seems to make the code work. Guy

Thanks for your feedback! The raw code can run smoothly now.

However, as you mentioned, there are still bugs that remain. For example, if one changes the points v2 in batch-deletion as v (i.e., delete all points in the tree), the program will throw ERROR: deleting the root or one of its two children is not supported. Swapping the order of batch-insertion and batch-deletion will incur the same problem as well.

Thanks again :)

Best,
Ziyang