"transmission-daemon: UDP Failed to set receive buffer" error

transmission-daemon doesn’t currently start, after rebooting the system — running systemctl status transmission-daemon.service reports:

● transmission-daemon.service - Transmission BitTorrent Daemon
     Loaded: loaded (/usr/lib/systemd/system/transmission-daemon.service; enabled; vendor preset: disabled)
     Active: active (running) since Sat 2022-08-27 16:04:03 EEST; 1min 50s ago
   Main PID: 9031 (transmission-da)
     Status: "Idle."
      Tasks: 4 (limit: 33477)
     Memory: 1.7M
        CPU: 144ms
     CGroup: /system.slice/transmission-daemon.service
             └─ 9031 /usr/bin/transmission-daemon -f --log-error

<a date> localhost.localdomain transmission-daemon[9031]: [<a date>] UDP Failed to set receive buffer: requested 4194304, got 425984 (tr-udp.c:97)
<a date> localhost.localdomain transmission-daemon[9031]: [<a date>] UDP Failed to set send buffer: requested 1048576, got 425984 (tr-udp.c:105)
<a date> localhost.localdomain transmission-daemon[9031]: [<a date>] UDP Failed to set receive buffer: requested 4194304, got 425984 (tr-udp.c:97)
<a date> localhost.localdomain transmission-daemon[9031]: [<a date>] UDP Failed to set send buffer: requested 1048576, got 425984 (tr-udp.c:105)

I’ve seen this Stack Exchange post, but I’m reluctant of editing system files, the daemon has been running for months on my computer so far, and the issue may be a different one altogether.

I’ve replaced some exact timestamps with <a date> for readability.


transmission-common.x86_64                       3.00-13.fc36                        @updates               
transmission-daemon.x86_64                       3.00-13.fc36                        @updates               
transmission-qt.x86_64                           3.00-13.fc36                        @updates

Sometimes it is necessary to edit these files.
Looking around the internet, it seems that this is the solution. Try it.

as described in your link you posted:

sudo tee /etc/sysctl.d/transmission.conf << "EOF"
net.core.rmem_max = 16777216
net.core.wmem_max = 4194304
EOF

restart sysctl with:

sysctl -p

and test again.

The example above creates a file in /etc/sysctl.d/transmission.conf so you know that you made the changes for Transmission. If nothing happens you can just delete the file again. And if you need a new installation you just can backup the file and move it to the new system.

2 Likes

Just remember to make a backup of the files your editing and if you mess up you can always go back and start over.

. /etc/sysctl

I did not understand the significance of this line — but your solution resolved the issue in any case, without running the said command.

Me neither. /etc/sysctl is not a file normally found on Fedora.

It is /etc/sysctl.conf. But as you can see above, I not changed the file it selves I created a new one in /etc/systemctl.d named transmission.conf.

See file header of /etc/sysctl.conf

# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.

@ilikelinux the question is: what does the last line (. /etc/sysctl) mean? (Is it a typo?)

Technically, it is sourcing the content of the file given, that is, whatever shell command you find in the file is executed, and when end of file is reached, the shell reverts back to reading commands from the terminal.

However, neither /etc/sysctl nor /etc/sysctl.con are shell files so to source it makes no sense.

I took the snippet from here:

Changed it and made a guess … but now I changed to a cd that you are in the directory to check if it is as you want to have it :wink:

The . /etc/profile is (when run from a shell) interpreted as “source /etc/profile” which means it reads /etc/profile and makes its settings active in the current environment.

so, now it should also include the config in sysctl.conf in current environment.

There is no shell environment to be set that could come from /etc/sysctl.conf. So, Don’t source it! It does not contain any shell commands that would be meaningfull to the shell.