HewlettPackard/foedus_code

SIGBUS error

tomersagi opened this issue · 4 comments

Hi,
I configured a DL380 Gen 8 with Linux for the machine installed on it for FOEDUS as per the documentation. BTW - more accurate instructions for Debian are given by https://wiki.debian.org/Hugepages. Did a simple init as follows:

foedus::EngineOptions options;
myEngine =  new foedus::Engine(options);
//engine.get_proc_manager()->pre_register(kProc, my_proc);
COERCE_ERROR(myEngine->initialize());
foedus::UninitializeGuard guard(myEngine);
foedus::Epoch create_epoch;

Got a SIGBUS error, here is the trace:

I0603 13:35:24.451062  1795 debugging_supports.cpp:98] initialize_glog(): Initialized GLOG
I0603 13:35:24.456940  1802 proc_manager_pimpl.cpp:50] Initializing ProcManager(CHILD-0)..
I0603 13:35:24.457032  1803 proc_manager_pimpl.cpp:50] Initializing ProcManager(CHILD-1)..
I0603 13:35:24.461616  1795 engine_memory.cpp:44] Initializing EngineMemory..
I0603 13:35:24.462049  1802 engine_memory.cpp:44] Initializing EngineMemory..
I0603 13:35:24.462188  1803 engine_memory.cpp:44] Initializing EngineMemory..
I0603 13:35:24.462188  1802 numa_node_memory.cpp:58] Initializing NumaNodeMemory for node 0. BEFORE: numa_node_size=33704828928
I0603 13:35:24.462311  1803 numa_node_memory.cpp:58] Initializing NumaNodeMemory for node 1. BEFORE: numa_node_size=33817817088
Signal: SIGBUS (Bus error)

Error was caused by line 169 in aligned_memory.cpp:

std::memset(block_, 0, size_);

Bug? Config issue?
Thanks,
Tomer

Sounds like environment. The easiest way to check is to run test cases. If the env is not setup, a large num of them would fail.

Could you elaborate how to run test cases?
The instructions in the main repo wiki is somewhat opaque:

Running Tests (For FOEDUS Developers)

First, make sure you have set up the environment, especially hugepages/shared memory. See the >Environment Setup section in foedus-core. If a large number of tests fail, it's most likely cauesed by >memory/permission issues.

Go to build folder, and:

ctest

I tried running ctest from the root folder, from foedus-core folder and from tests-core folder. In all the response is

No tests were found!!!

Could you explain in more details?
Thanks,

You have to go to build folder then ctest.

I think this was due to not enough hugepages. #39 added a user-friendly message to report how many hugepages have to be allocated. Does it solve the issue? If not, please reopen the issue.