Skip to content

[CRASH] Segfault in lzf_compress in Docker image eqalpha/keydb:alpine_x86_64_v6.3.0 on bgsave #422

@likuilin

Description

@likuilin

Crash report

keydb-server segfaults with the standard Docker image during bgsave when given the default conf file in the Docker image.

There's no crash message, but it exits with a segfault. Here's a core dump: core.gz

Core was generated by `keydb-server *:6379               '.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x000055c249b6aad4 in lzf_compress ()
[Current thread is 1 (LWP 30)]
(gdb) bt
#0  0x000055c249b6aad4 in lzf_compress ()
#1  0x000055c249b20fc5 in ?? ()
#2  0x000055c249b2e0fd in rdbSaveRawString(_rio*, unsigned char const*, unsigned long) ()
#3  0x000055c249b2e19e in rdbSaveAuxField(_rio*, void const*, unsigned long, void const*, unsigned long) ()
#4  0x000055c249b2e366 in rdbSaveInfoAuxFields(_rio*, int, rdbSaveInfo*) ()
#5  0x000055c249b2e56e in rdbSaveRio(_rio*, redisDbPersistentDataSnapshot const**, int*, int, rdbSaveInfo*) ()
#6  0x000055c249b250ff in rdbSaveFile(char*, redisDbPersistentDataSnapshot const**, rdbSaveInfo*) ()
#7  0x000055c249b25509 in rdbSave(redisDbPersistentDataSnapshot const**, rdbSaveInfo*) ()
#8  0x000055c249b2592f in rdbSaveThread(void*) ()
#9  0x00007f2ba29947b7 in ?? () from /lib/ld-musl-x86_64.so.1
#10 0x0000000000000000 in ?? ()
(gdb) i r
rax            0x7f2b9ea24008      139825321754632
rbx            0x7f2b9ea2402e      139825321754670
rcx            0x6e6b              28267
rdx            0x7f2ba2297210      139825380946448
rsi            0x7f2ba2272b5c      139825380797276
rdi            0x7f2b9ea24008      139825321754632
rbp            0x7f2ba22571b0      0x7f2ba22571b0
rsp            0x7f2ba22571a0      0x7f2ba22571a0
r8             0x7f2ba2297211      139825380946449
r9             0x65                101
r10            0x7f2ba2297234      139825380946484
r11            0x7f2b9ea24030      139825321754672
r12            0x646465            6579301
r13            0x0                 0
r14            0x108               264
r15            0x0                 0
rip            0x55c249b6aad4      0x55c249b6aad4 <lzf_compress+212>
eflags         0x10293             [ CF AF SF IF RF ]
cs             0x33                51
ss             0x2b                43
ds             0x0                 0
es             0x0                 0
fs             0x0                 0
gs             0x0                 0
(gdb) x/10i $rip
=> 0x55c249b6aad4 <lzf_compress+212>:   mov    (%rsi),%ecx
   0x55c249b6aad6 <lzf_compress+214>:   mov    %r15d,(%rsi)
   0x55c249b6aad9 <lzf_compress+217>:   mov    %rax,%rsi
   0x55c249b6aadc <lzf_compress+220>:   add    %rdi,%rcx
   0x55c249b6aadf <lzf_compress+223>:   sub    %rcx,%rsi
   0x55c249b6aae2 <lzf_compress+226>:   sub    $0x1,%rsi
   0x55c249b6aae6 <lzf_compress+230>:   cmp    $0x1fff,%rsi
   0x55c249b6aaed <lzf_compress+237>:   ja     0x55c249b6aa78 <lzf_compress+120>
   0x55c249b6aaef <lzf_compress+239>:   cmp    %rcx,%rdi
   0x55c249b6aaf2 <lzf_compress+242>:   jae    0x55c249b6aa78 <lzf_compress+120>
(gdb)

Additional information

  1. OS distribution and version

Reproduced in:

Docker version 20.10.16, build aa7e414 with host Ubuntu 20.04.4 LTS

Docker Desktop version 20.10.13 build 906f57f with host Windows 10.0.19044

  1. Steps to reproduce (if any)
  • docker run --rm -d --name test_keydb eqalpha/keydb:alpine_x86_64_v6.3.0 keydb-server /etc/keydb/keydb.conf
  • docker exec test_keydb keydb-cli bgsave
  • Server crashes

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions