valkey-io / valkey

A flexible distributed key-value datastore that is optimized for caching and other realtime workloads.
https://valkey.io
Other
17.15k stars 642 forks source link

[BUG] Error during "make test": "Failed opening Unix socket: unix socket path too long" #162

Open hammondr opened 7 months ago

hammondr commented 7 months ago

Describe the bug

I am trying to build valkey in a GitLab instance managed by another team. The GitLab repo has a very long path name length due to having several parent groups.

When running make test, builds fail with logs like:

...
unixsocket /builds/X8KYPN3xm/0/very-long-group-name/foo-internal-team-policy/foo-internal-team-working/another-group-name/valkey/tests/tmp/server.5290.8/socket
...
ERROR:
### Starting server for test Fuzzer corrupt restore payloads - sanitize_dump: no in tests/integration/corrupt-dump-fuzzer.tcl
120942:C 03 Apr 2024 04:18:25.446 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
120942:C 03 Apr 2024 04:18:25.446 * oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
120942:C 03 Apr 2024 04:18:25.446 * Redis version=255.255.255, bits=64, commit=c8e5aa17, modified=0, pid=120942, just started
120942:C 03 Apr 2024 04:18:25.446 * Configuration loaded
120942:M 03 Apr 2024 04:18:25.447 * monotonic clock: POSIX clock_gettime
                     ___   ___                                                           
                    (   ) (   )                                                         
 ___  ___    .---.   | |   | |   ___     .--.    ___  ___                               
(   )(   )  / .-, \  | |   | |  (   )   /    \  (   )(   )   Valkey 255.255.255 (c8e5aa17/0) 64 bit  
 | |  | |  (__) ; |  | |   | |  ' /    |  .-. ;  | |  | |                               
 | |  | |    .'`  |  | |   | |,' /     |  | | |  | |  | |    Running in standalone mode         
 | |  | |   / .'| |  | |   | .  '.     |  |/  |  | '  | |    Port: 28614                   
 | |  | |  | /  | |  | |   | | `. \    |  ' _.'  '  `-' |    PID: 120942                 
 ' '  ; '  ; |  ; |  | |   | |   \ \   |  .'.-.   `.__. |                            
  \ `' /   ' `-'  |  | |   | |    \ .  '  `-' /   ___ | |                             
   \__/    `.__.'_. (___) (___ )  (___) `.__.'   (   )' |    https://valkey.io/
                                                  ; `-' '                               
                                                   .__.'                                

120942:M 03 Apr 2024 04:18:25.447 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
120942:M 03 Apr 2024 04:18:25.447 # Failed opening Unix socket: unix socket path too long (166), must be under 108

To reproduce

Run make test from a very long Linux path

Expected behavior

Ability to set desired path of unixsockets used during make test

Additional information

Is there a way to set the dirname for the unixsockets created for testing?

hwware commented 7 months ago

For my understanding, you can set a path in the server.tcl file to avoid the too long pathname.