Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[CRASH] Starting KeyDB on ARM hardware causing serverAssert failure #856

Open
ronnyek opened this issue Jul 31, 2024 · 2 comments
Open

[CRASH] Starting KeyDB on ARM hardware causing serverAssert failure #856

ronnyek opened this issue Jul 31, 2024 · 2 comments

Comments

@ronnyek
Copy link

ronnyek commented Jul 31, 2024

I'm attempting to build a container image (has to be proprietary unfortunately) that is to be run on ARM hardware. Initially I was getting an error around invalid page size in jemalloc, but adding --with-lg-page=16 did get us past that problem.

Now on start I get server.cpp:6531 '!ret' is not true

Crash report

=== KEYDB BUG REPORT START: Cut & paste starting from here ===
1:1:C 31 Jul 2024 16:05:19.226 # === ASSERTION FAILED ===
1:1:C 31 Jul 2024 16:05:19.226 # ==> server.cpp:6531 '!ret' is not true

------ STACK TRACE ------

Backtrace:
keydb-server(linuxMadvFreeForkBugCheck()+0x368) [0x45b828]
keydb-server(main+0x31c) [0x4432cc]
/lib64/libc.so.6(+0x27300) [0xffffaa607300]
/lib64/libc.so.6(__libc_start_main+0x98) [0xffffaa6073d8]
keydb-server(_start+0x30) [0x447670]

------ INFO OUTPUT ------
Keydb starting as active-replica and multi-master
1:1:C 31 Jul 2024 16:08:03.327 * Notice: "active-replica yes" implies "replica-read-only no"
1:1:C 31 Jul 2024 16:08:03.327 * Before turning into a replica, using my own master parameters to synthesize a cached master: I may be able to synchronize with the new master with just a partial transfer.
1:1:C 31 Jul 2024 16:08:03.327 # oO0OoO0OoO0Oo KeyDB is starting oO0OoO0OoO0Oo
1:1:C 31 Jul 2024 16:08:03.327 # KeyDB version=6.3.4, bits=64, commit=7e7e5e57, modified=1, pid=1, just started
1:1:C 31 Jul 2024 16:08:03.327 # Configuration loaded

Additional information

  1. Not sure if this matters, but this is being deployed on rockylinux 8 based container image
  2. A perm link for the code in server.cpp aroudn that line number
@jcy1001
Copy link

jcy1001 commented Aug 1, 2024

yes ,on arm ,i also have this problem

@ronnyek
Copy link
Author

ronnyek commented Aug 1, 2024

In digging further it seems like this may be related to linux kernel specific to arm having a bug related to pgtable, and that keydb/redis code apparently attempts to check whether that bug exists in the linux kernel.
arm64: pgtable: Ensure dirty bit is preserved across pte_wrprotect()

Seems like running a linux kernel of a newer version (that had the original issue fixed) would likely start right up and work.

I guess my question here is whether I'd likely run into that issue, if I was not doing any writes to storage (essential memory only caching).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants