сокет redis-cli unix - импорт rcmd завершился неудачно - PullRequest
0 голосов
/ 30 ноября 2018

Я использую Redis Server 3.0.6 на рабочем столе Ubuntu 16.04.Установлено с использованием

apt-get install redis-server

Долгое время работало нормально.Сегодня, когда я попытался импортировать файл rcmd с помощью сокета unix в redis-cli, я выдает ошибку из памяти.

$ sudo redis-cli -s /run/redis/redis.sock  < a1.rcmd
Error: Out of memory

a1.rcmd:

SET Api:Server:Name "server1"

/ etc/redis/redis.conf был сконфигурирован с /run/redis/redis.sock.Все остальные конфигурации по умолчанию.

Команды GET, SET с опцией сокета unix работают нормально.

Если я запускаю без сокета unix, команда redis-cli

В чем причина этой ошибки?

Будет ли устранена эта проблема при обновлении до последней версии redis?Я не вижу apt-get способа установить последнюю версию redis 5.

Любая помощь будет очень признательна.

** EDIT **

Еще несколько входов и журналы GDB.

$ which redis-server 
/usr/bin/redis-server


$ sudo service redis-server status
● redis-server.service - Advanced key-value store
   Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2018-12-17 11:29:14 EST; 16min ago
     Docs: http://redis.io/documentation,
           man:redis-server(1)
  Process: 8986 ExecStopPost=/bin/run-parts --verbose /etc/redis/redis-server.post-down.d (code=exited, status=0/SUCCESS)
  Process: 8981 ExecStop=/bin/kill -s TERM $MAINPID (code=exited, status=0/SUCCESS)
  Process: 8977 ExecStop=/bin/run-parts --verbose /etc/redis/redis-server.pre-down.d (code=exited, status=0/SUCCESS)
  Process: 9001 ExecStartPost=/bin/run-parts --verbose /etc/redis/redis-server.post-up.d (code=exited, status=0/SUCCESS)
  Process: 8997 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)
  Process: 8992 ExecStartPre=/bin/run-parts --verbose /etc/redis/redis-server.pre-up.d (code=exited, status=0/SUCCESS)
 Main PID: 9000 (redis-server)
    Tasks: 3
   Memory: 884.0K
      CPU: 304ms
   CGroup: /system.slice/redis-server.service
           └─9000 /usr/bin/redis-server 127.0.0.1:637

$ sudo gdb /usr/bin/redis-server 9000
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/redis-server...(no debugging symbols found)...done.
Attaching to program: /usr/bin/redis-server, process 9000
[New LWP 9002]
[New LWP 9003]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
0x00007fe8f5158a13 in epoll_wait () at ../sysdeps/unix/syscall-template.S:84
84  ../sysdeps/unix/syscall-template.S: No such file or directory.
(gdb) continue
Continuing.


After this step I ran following command in another terminal:
$ sudo redis-cli -s /run/redis/redis.sock < a1.rcmd
Segmentation fault (core dumped)


(gdb) bt
#0  0x00007fe8f5158a13 in epoll_wait () at ../sysdeps/unix/syscall-template.S:84
#1  0x000055b238abe15f in aeProcessEvents ()
#2  0x000055b238abe58b in aeMain ()
#3  0x000055b238abd204 in main ()

(gdb) info registers
rax            0xfffffffffffffffc   -4
rbx            0x7fe8f48e5300   140638512108288
rcx            0x7fe8f5158a13   140638520969747
rdx            0x1060   4192
rsi            0x7fe8f4910000   140638512283648
rdi            0x3  3
rbp            0x7fe8f487b068   0x7fe8f487b068
rsp            0x7ffd9a5ca920   0x7ffd9a5ca920
r8             0x284    644
r9             0x284    644
r10            0x64 100
r11            0x293    659
r12            0x7ffd9a5caae8   140727193217768
r13            0x7fe8f480e1a0   140638511227296
r14            0x7fe8f48101f0   140638511235568
r15            0xfffffffe   4294967294
rip            0x7fe8f5158a13   0x7fe8f5158a13 <epoll_wait+51>
eflags         0x293    [ CF AF SF IF ]
cs             0x33 51
ss             0x2b 43
ds             0x0  0
es             0x0  0
fs             0x0  0
gs             0x0  0
(gdb) 
...