Skip to content

parse errors xmlrpc - Bad response from server: (200 [parsererror,list]) #2977

@spicemint

Description

@spicemint

Please complete the following tasks.

  • Web browser cache cleared
  • Link provided to install script if applicable
  • Not using broken rtinst install script
  • Web browser, ruTorrent, PHP and OS version provided

Tell us about your environment

Web Browser: Firefox (142.0.1 (aarch64)), Edge (Version 140.0.3485.81 (Official build) (arm64)), Safari (Version 26.0.1 (20622.1.22.118.4)), Chrome (Version 140.0.7339.210 (Official Build) (arm64)
), Vivaldi Version 140.0.7339.210 (Official Build) (arm64)

rutorrent: 5.2.10
PHP: 8.4.12
OS: Arch 6.16.8-arch1-1
rtorrent/libtorrent: 16

rutorrent resides in /usr/share/webapps/rutorrent/
the conf/config.php
` <?php
// configuration parameters
// for snoopy client
$httpUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36';
$httpTimeOut = 30; // in seconds
$httpUseGzip = true;
$httpIP = null; // IP string. Or null for any.
$httpProxy = array
(
'use' => false,
'proto' => 'http', // 'http' or 'https'
'host' => 'PROXY_HOST_HERE',
'port' => 3128
);

// for xmlrpc actions
$rpcTimeOut = 10;			// in seconds
$rpcLogCalls = false;
$rpcLogFaults = true;

// for php
$phpUseGzip = false;
$phpGzipLevel = 2;

$schedule_rand = 10;			// rand for schedulers start, +0..X seconds

$do_diagnostic = false;			// Diagnose ruTorrent. Recommended to keep enabled, unless otherwise required.
$al_diagnostic = true;			// Diagnose auto-loader. Set to "false" to make composer plugins work.

$log_file = $_ENV['RU_LOG_FILE'] ?? '/tmp/errors.log'; // path to log file (comment or leave blank to disable logging)

$saveUploadedTorrents = true;		// Save uploaded torrents to profile/torrents directory or not
$overwriteUploadedTorrents = false;	// Overwrite existing uploaded torrents in profile/torrents directory or make unique name

$topDirectory = $_ENV['RU_TOP_DIR'] ?? '/';			// Upper available directory. Absolute path with trail slash.
$forbidUserSettings = false;

//	$scgi_port = $_ENV['RU_SCGI_PORT'] ?? 5000;
//	$scgi_host = $_ENV['RU_SCGI_HOST'] ?? "127.0.0.1";

$scgi_port = 0;
$scgi_host = "unix:///run/rtorrent/rpc1.socket";

// For web->rtorrent link through unix domain socket
// (scgi_local in rtorrent conf file), change variables
// above to something like this:
//
// $scgi_port = 0;
// $scgi_host = "unix:///tmp/rpc.socket";

$XMLRPCMountPoint = "/RPC2";		// DO NOT DELETE THIS LINE!!! DO NOT COMMENT THIS LINE!!!

$throttleMaxSpeed = 327625*1024;	// DO NOT EDIT THIS LINE!!! DO NOT COMMENT THIS LINE!!!
// Can't be greater then 327625*1024 due to limitation in libtorrent ResourceManager::set_max_upload_unchoked function.

$pathToExternals = array(
	"php"	=> '',			// Something like /usr/bin/php. If empty, will be found in PATH.
	"curl"	=> '',			// Something like /usr/bin/curl. If empty, will be found in PATH.
	"gzip"	=> '',			// Something like /usr/bin/gzip. If empty, will be found in PATH.
	"id"	=> '',			// Something like /usr/bin/id. If empty, will be found in PATH.
	"stat"	=> '',			// Something like /usr/bin/stat. If empty, will be found in PATH.
);

$localHostedMode = true;		// Set to true if rTorrent is hosted on the SAME machine as ruTorrent

$cachedPluginLoading = false;		// Set to true to enable rapid cached loading of ruTorrent plugins
									// Required to clear web browser cache when upgrading versions

$pluginMinification = false; 	// Stable change to reduce loading times by minimizing JavaScript networked
								// Only recommended to disable when required for debuging purposes

$localhosts = array(			// list of local interfaces
	"::1",
	"127.0.0.1",
	"localhost",
	"10.133.120.3",
);

getenv("RU_LOCALHOSTS") && $localhosts[] = $_ENV['RU_LOCALHOSTS'];

$profilePath = $_ENV['RU_PROFILE_PATH'] ?? '../../share';		// Path to user profiles
$profileMask = $_ENV['RU_PROFILE_MASK'] ?? 0777;			// Mask for files and directory creation in user profiles.
					// Both Webserver and rtorrent users must have read-write access to it.
					// For example, if Webserver and rtorrent users are in the same group then the value may be 0770.

$tempDirectory = $_ENV['RU_TEMP_DIRECTORY'] ?? null; // Temp directory. Absolute path. If null, then autodetect will be used.

$canUseXSendFile = false;		// If true then use X-Sendfile feature if it exist

$locale = "UTF8";

$enableCSRFCheck = false;		// If true then Origin and Referer will be checked
$enabledOrigins = array();		// List of enabled domains for CSRF check (only hostnames, without protocols, port etc.).
					// If empty, then will retrieve domain from HTTP_HOST / HTTP_X_FORWARDED_HOST

`

the rutorrent/conf/plugins.ini

;; Plugins' permissions.
;; If flag is not found in plugin section, corresponding flag from "default" section is used.
;; If flag is not found in "default" section, it is assumed to be "yes".
;;
;; For setting individual plugin permissions you must write something like that:
;;
;; [ratio]
;; enabled = yes ;; also may be "user-defined", in this case user can control plugin's state from UI
;; canChangeToolbar = yes
;; canChangeMenu = yes
;; canChangeOptions = no
;; canChangeTabs = yes
;; canChangeColumns = yes
;; canChangeStatusBar = yes
;; canChangeCategory = yes
;; canBeShutdowned = yes

[default]
enabled = user-defined
canChangeToolbar = yes
canChangeMenu = yes
canChangeOptions = yes
canChangeTabs = yes
canChangeColumns = yes
canChangeStatusBar = yes
canChangeCategory = yes
canBeShutdowned = yes

[httprpc]
enabled = yes
[RPC]
enabled = no

relevant bits from apache config:

<Location /RPC2>
ProxyPass unix:///run/rtorrent/rpc1.socket|scgi://127.0.0.1/RPC2
Require all granted


Alias /rutorrent /usr/share/webapps/rutorrent
<Directory "/usr/share/webapps/rutorrent">
Require all granted
AuthType Basic
AuthBasicProvider file
AuthName "Nihil Hic Vides"
AuthUserFile /usr/share/webapps/rutorrent/.htpasswd
Require valid-user

my rtorrent.rc

network.local_address.set = external IP
network.bind_address.set = internal lan IP
ratio.min.set=10000
ratio.max.set=30000
ratio.upload.set=300000M
system.file.allocate.set = 1
network.send_buffer.size.set = 128M
session.path.set = /home/funky1/media/sdac/rtorrent01/.session01/
network.rpc.use_xmlrpc.set = true
network.rpc.use_jsonrpc.set = false
system.daemon.set = false
network.scgi.open_local = /run/rtorrent/rpc1.socket
schedule2 = scgi_permission,0,0,"execute.nothrow=chmod,"g+w,o=",/run/rtorrent/rpc1.socket"
log.open_file = "rtorrent.log", (cat,/home/funky1/media/sdn/rtorrent01/rtorrent.log.,(system.pid))
log.add_output = "debug", "rtorrent.log"
schedule = watch_directory_1,10,10,"load.start=/home/funky1/media/sdae/incoming/*.torrent,d.custom1.set=/home/funky1/media/sdae/incoming/"
method.insert = d.data_path, simple, "if=(d.is_multi_file), (cat,(d.directory),/), (cat,(d.directory),/,(d.name))"
method.insert = d.move_to_complete, simple, "d.directory.set=$argument.1=; execute=mkdir,-p,$argument.1=; execute=mv,-u,$argument.0=,$argument.1=; d.save_full_session="
method.set_key = event.download.finished,move_complete,"d.move_to_complete=$d.data_path=,$d.custom1="
network.port_range.set = 41114-43120
network.port_random.set = no
dht.mode.set = disable
protocol.pex.set = no
trackers.use_udp.set = yes
throttle.max_uploads.set = 20
throttle.max_uploads.global.set = 200
throttle.min_peers.normal.set = 100
throttle.max_peers.normal.set = 200
throttle.min_peers.seed.set = 99
throttle.max_peers.seed.set = 100
trackers.numwant.set = -1
max_downloads_global = 10
protocol.encryption.set = allow_incoming,try_outgoing,enable_retry
network.http.max_open.set = 99
network.max_open_files.set = 600
network.max_open_sockets.set = 999
pieces.memory.max.set = 4096M
network.xmlrpc.size_limit.set = 128M
execute.nothrow = sh, -c, (cat, "echo >",
(session.path), "rtorrent.pid", " ",(system.pid))
encoding.add = UTF-8
system.umask.set = 0027
network.http.dns_cache_timeout.set = 25
schedule = monitor_diskspace, 15, 60, ((close_low_diskspace, 1000M))
pieces.hash.on_completion.set = yes
method.insert = system.startup_time, value|const, (system.time)
method.insert = d.session_file, simple, "cat=(session.path), (d.hash), .torrent"

Tell us how you installed ruTorrent

earlier was using apache, rtorrent/libtorrent 15 with rutorrent 5.2.10 and rpc port ip and was working, then once I updated and ran into this issue i did a fresh install:
got the latest source from the rutorrent github, extracted into /usr/share/webapps/rutorrent/
Tried with Apache and nginx, same issue, then i switched to the current config of rtorrent/rutorrent (the change: now using unix sockets)
so working to get the above working but normally i have also multiple instances of rtorrent & rutorrent running (to fix the problem i have no, i removed all other rtorrent/rutorrent instance but would like to have confirmation that it is correct also, which is why I'm explaining my approach to it here)
basically i would unzip another rutorrent in /usr/share/webapps/rutorrent2/ then adjust the same files as above, e.g. the conf/config.php:

$scgi_host = "unix:///run/rtorrent/rpc2.socket";
$XMLRPCMountPoint = "/RPC3";

apache config has an addition to the above:
relevant bits from apache config:

<Location /RPC3>
ProxyPass unix:///run/rtorrent/rpc1.socket|scgi://127.0.0.1/RPC3
Require all granted


Alias /rutorrent /usr/share/webapps/rutorrent
<Directory "/usr/share/webapps/rutorrent2">
Require all granted
AuthType Basic
AuthBasicProvider file
AuthName "Nihil Hic Vides"
AuthUserFile /usr/share/webapps/rutorrent2/.htpasswd
Require valid-user

and rtorrent is also accordingly adjusted:

network.rpc.use_xmlrpc.set = true
network.rpc.use_jsonrpc.set = false
system.daemon.set = false
network.scgi.open_local = /run/rtorrent/rpc2.socket
schedule2 = scgi_permission,0,0,"execute.nothrow=chmod,"g+w,o=",/run/rtorrent/rpc2.socket"

Describe the bug

When loading the website, the rutorrent webpage displays space on hdd, version of rtorrent/libtorrent, speed, external IP and ports in use but no torrents are displayed and this error is shown:

Bad response from server: (200 [parsererror,list])

Steps to reproduce

update to or install freshly rtorrent, rutorrent, php, webserver, start php, webserver, rtorrent and ndavigate to webpage

Expected behavior

torrents should be displayed in the browser, i don't use any of the plugins

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions