View Issue Details

IDProjectCategoryView StatusLast Update
0009649GNUnetcore servicepublic2025-03-22 18:01
Reporternoe Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
PlatformLinux x86_64OSGuix 
Product Version0.23.0 
Summary0009649: gnunet-core does not report errors when connecting to the system daemon
DescriptionIn case of missing permissions for accessing /tmp/gnunet-system-runtime/gnunet-service-core.sock the command ”gnunet-core -s” will retry to access the socket forever without producing an error.

The only way I found to know the problem was to run strace, which shows a loop of the following output:
pselect6(4, [3], [], NULL, {tv_sec=4, tv_nsec=95990000}, NULL) = 0 (Timeout)
socket(AF_UNIX, SOCK_STREAM, 0) = 5
fcntl(5, F_GETFD) = 0
fcntl(5, F_SETFD, FD_CLOEXEC) = 0
fcntl(5, F_GETFL) = 0x2 (flags O_RDWR)
fcntl(5, F_SETFL, O_RDWR|O_NONBLOCK) = 0
connect(5, {sa_family=AF_UNIX, sun_path="/tmp/gnunet-system-runtime//gnunet-service-core.sock"}, 110) = -1 EACCES (Permission non accordée)
close(5) = 0

Surely it would be better to stop the loop in case of EACCES and report the error to the user instead? In this case it is the /tmp/gnunet-system-runtime directory that is created but not accessible to the current user that is not in the gnunet group, so there is no hope of getting a connection by just waiting.
Steps To ReproduceRun a multi-user gnunet setup and start a system daemon and a user daemon.

For the user, do not have him in the “gnunet” group.

gnunet-core -s will wait infinitely instead of reporting the lack of permissions.
TagsNo tags attached.

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2025-03-22 18:01 noe New Issue