__setDR: Assertion `!"setDR ERROR"' failed




I am running aerospike server on ubuntu 16.04 on aarch64 device. Server is crashing with below error when I test with aerospike_test running on the same device

asd: bt_code.c:345: __setDR: Assertion `!“setDR ERROR”’ failed.

Dec 04 2017 17:09:00 GMT: WARNING (as): (signal.c:96) SIGABRT received, aborting Aerospike Community Edition build os ubuntu16.04

Dec 04 2017 17:09:00 GMT: WARNING (as): (signal.c:100) stacktrace: found 1 frames

Dec 04 2017 17:09:00 GMT: WARNING (as): (signal.c:100) stacktrace: frame 0: ./target/Linux-aarch64/bin/asd(as_sig_handle_abort+0x58) [0x483e88]

Makefile:70: recipe for target ‘start’ failed

make: *** [start] Aborted

Could you please help me to resolve this issue?

Cross-posted here: https://stackoverflow.com/questions/47639204/aerospike-server-crashed-with-error-setdr-assertion-setdr-error-failed


Aerospike doesn’t support ARM at his time.


Thanks for your response. I have ported aerospike on to ARM device and able to run aerospike server and aerospike_test on ARM device. I am able to insert record using aql also.

Could you please help me to understand about what this “setDR” does and why this assertion is happening. Is there any setting/configuration to be done for this?


One of my colleagues suggested the following:

From a quick look at the code, I could imagine a compiler that defaults to “char” to unsigned could trigger this assert. If this is what’s happening, then perhaps adding “signed” to the declaration of “dirty” in “btreenode” in “btreepriv.h” might help. Or perhaps there could be issues with the struct being declared as packed?

PS: please provide this courtesy when cross-posting: