<div dir="ltr"><div>Package: perl-modules-5.32</div><div>Version: 5.32.1-4+deb11u2</div><div><br></div><div>Hello,</div><div><br></div><div>I use backup-manager (conf attached) to upload tarballs to a FTPS destination.</div><div>backup-manager use the perl package Net::FTP to handle ftp connections.</div><div>It
 seems that the Net::FTP v3.11 perl package is incompatible with the 
IO::Socket:SSL perl package provided by the libio-socket-ssl-perl 
v2.069-1 debian package.</div><div>This version of Net::FTP uses a custom SSL_session_cache which lacks a 'del_session' routine invoked by IO::Socket:SSL.</div><div><br></div><div>Thus I end up with the following fault :</div><div><br></div><div>$ backup-manager -d -c backup-manager.conf</div><div>Backup Manager 0.7.14 - Copyright (c) 2004-2016 Alexis Sukrieh<br>Process started at 2021-10-28 Â  13:14:11<br>DEBUG: Sanitizing the configuration file.<br>DEBUG: replace_deprecated_booleans()<br>DEBUG: confkey_require (BM_LOGGER, true)<br>DEBUG: confkey_handle_deprecated (BM_ARCHIVES_REPOSITORY, BM_REPOSITORY_ROOT)<br>DEBUG: confkey_require (BM_REPOSITORY_ROOT, /var/archives)<br>DEBUG: confkey_require (BM_TEMP_DIR, /tmp)<br>DEBUG: confkey_require (BM_REPOSITORY_SECURE, true)<br>DEBUG: confkey_handle_deprecated (BM_USER, BM_REPOSITORY_USER)<br>DEBUG: confkey_require (BM_REPOSITORY_USER, root)<br>DEBUG: confkey_handle_deprecated (BM_GROUP, BM_REPOSITORY_GROUP)<br>DEBUG: confkey_require (BM_REPOSITORY_GROUP, root)<br>DEBUG: confkey_require (BM_REPOSITORY_CHMOD, 770)<br>DEBUG: confkey_require (BM_ARCHIVE_CHMOD, 660)<br>DEBUG: confkey_require (BM_REPOSITORY_RECURSIVEPURGE, false)<br>DEBUG: confkey_handle_deprecated (BM_MAX_TIME_TO_LIVE, BM_ARCHIVE_TTL)<br>DEBUG: confkey_require (BM_ARCHIVE_TTL, 5)<br>DEBUG: confkey_handle_deprecated (BM_PURGE_DUPLICATES, BM_ARCHIVE_PURGEDUPS)<br>DEBUG: confkey_require (BM_ARCHIVE_PURGEDUPS, true)<br>DEBUG: confkey_handle_deprecated (BM_ARCHIVES_PREFIX, BM_ARCHIVE_PREFIX)<br>DEBUG: confkey_require (BM_ARCHIVE_PREFIX, server_hostname)<br>DEBUG: confkey_handle_deprecated (BM_BACKUP_METHOD, BM_ARCHIVE_METHOD)<br>DEBUG: confkey_require (BM_ARCHIVE_METHOD, tarball)<br>DEBUG: confkey_require (BM_ARCHIVE_NICE_LEVEL, 10)<br>DEBUG: confkey_require (BM_TARBALL_FILETYPE, tar.gz)<br>DEBUG: confkey_require (BM_TARBALL_NAMEFORMAT, long)<br>DEBUG: confkey_require (BM_TARBALL_DUMPSYMLINKS, false)<br>DEBUG: confkey_handle_deprecated (BM_FILETYPE, BM_TARBALL_FILETYPE)<br>DEBUG: confkey_handle_deprecated (BM_NAME_FORMAT, BM_TARBALL_NAMEFORMAT)<br>DEBUG: confkey_handle_deprecated (BM_DIRECTORIES_BLACKLIST, BM_TARBALL_BLACKLIST)<br>DEBUG: confkey_handle_deprecated (BM_DUMP_SYMLINKS, BM_TARBALL_DUMPSYMLINKS)<br>DEBUG: confkey_require (BM_UPLOAD_FTP_TIMEOUT, 120)<br>DEBUG: confkey_warning (BM_UPLOAD_FTP_TIMEOUT, 120)<br>The configuration key BM_UPLOAD_FTP_TIMEOUT is not set, using "120".<br>When validating the configuration file backup-manager.conf, 1 warnings were found.<br>DEBUG: Initializing environment<br>DEBUG: bm_init_env()<br>DEBUG: Checking if logger is available<br>DEBUG: Getting lock<br>DEBUG: get_lock()<br>Getting lock for backup-manager 3919206 with backup-manager.conf<br>DEBUG: check_filetypes()<br>DEBUG: Running pre-command</div><div>DEBUG: exec_pre_command()<br>DEBUG: create_directories()<br>DEBUG: Purging the repository<br>DEBUG: clean_repositories<br>Cleaning /var/archives/<br>DEBUG: clean_directory (/var/archives/)<br>DEBUG: Building archives<br>DEBUG: make_archives()<br>DEBUG: backup_method_tarball (tarball-incremental)<br>Using method "tarball-incremental".<br>DEBUG: __get_flags_tar_dump_symlinks<br>DEBUG: __make_local_tarball_archives<br>DEBUG: __make_local_tarball_token (/usr/share/backup-manager)<br>DEBUG: get_dir_name (/usr/share/backup-manager, long)<br>DEBUG: __get_flags_tar_incremental (-usr-share-backup-manager)<br>DEBUG: cp /var/archives/server_hostname-usr-share-backup-manager.incremental.bin /var/archives/server_hostname-usr-share-backup-manager.incremental.bin.orig<br>DEBUG: __get_master_day ()<br>DEBUG: __init_masterdatevalue ()<br>DEBUG: __build_local_archive (/usr/share/backup-manager, -usr-share-backup-manager)<br>DEBUG: __get_file_to_create (/usr/share/backup-manager)<br>DEBUG: get_dir_name (/usr/share/backup-manager, long)<br>DEBUG: __get_backup_tarball_command ()<br>DEBUG: __get_flags_tar_blacklist (/usr/share/backup-manager)<br>DEBUG: __get_flags_relative_blacklist (--exclude=, /usr/share/backup-manager)<br>File /var/archives/server_hostname-usr-share-backup-manager.20211028.tar.gpg already exists, skipping.<br>DEBUG: rm -f /var/archives/server_hostname-usr-share-backup-manager.incremental.bin.orig<br>DEBUG: Running the upload methods<br>DEBUG: upload_files()<br>Using the upload method "ftp".<br>Trying to upload files with ftp<br>Logged on ftp_server:ftp_port, in /path/to/backup/ (FTP binary mode)<br>Cleaning remote directory through FTP<br>Error reported by backup-manager-upload for method "ftp", check "/tmp/bmu-log.Mw8hYw".<br>DEBUG: exec_post_command()<br>Releasing lock<br>DEBUG: release_lock()</div><div><br></div><div>$ cat /tmp/bmu-log.Mw8hYw</div><div>Net::FTP>>> Net::FTP(3.11)<br>Net::FTP>>> Â  Exporter(5.74)<br>Net::FTP>>> Â  Net::Cmd(3.11)<br>Net::FTP>>> Â  IO::Socket::SSL(2.069)<br>Net::FTP>>> Â  Â  IO::Socket::IP(0.39)<br>Net::FTP>>> Â  Â  Â  IO::Socket(1.43)<br>Net::FTP>>> Â  Â  Â  Â  IO::Handle(1.42)<br>Net::FTP=GLOB(0x5646f37d5218)<<< 220 ftp_server FTP server ready.<br>Net::FTP=GLOB(0x5646f37d5218)>>> AUTH TLS<br>Net::FTP=GLOB(0x5646f37d5218)<<< 234 AUTH TLS command successful.<br>Net::FTP=GLOB(0x5646f37d5218)>>> PBSZ 0<br>Net::FTP=GLOB(0x5646f37d5218)<<< 200 PBSZ command successful (PBSZ=0).<br>Net::FTP=GLOB(0x5646f37d5218)>>> PROT P<br>Net::FTP=GLOB(0x5646f37d5218)<<< 200 Protection level set to Private.<br>Net::FTP=GLOB(0x5646f37d5218)>>> USER ftp_user<br>Net::FTP=GLOB(0x5646f37d5218)<<< 331 Password required for ftp_user.<br>Net::FTP=GLOB(0x5646f37d5218)>>> PASS ....<br>Net::FTP=GLOB(0x5646f37d5218)<<< 230 User ftp_user logged in.<br>Net::FTP=GLOB(0x5646f37d5218)>>> TYPE I<br>Net::FTP=GLOB(0x5646f37d5218)<<< 200 Type set to I.<br>Net::FTP=GLOB(0x5646f37d5218)>>> CWD /path/to/backup<br>Net::FTP=GLOB(0x5646f37d5218)<<< 250 CWD command successful.<br>Net::FTP=GLOB(0x5646f37d5218)>>> PASV<br>Net::FTP=GLOB(0x5646f37d5218)<<< 227 Entering Passive Mode (xx,xxx,xxx,xxx,xxx,xxx)<br>Net::FTP=GLOB(0x5646f37d5218)>>> NLST<br>Can't locate object method "del_session" via package "Net::FTP::_SSL_SingleSessionCache" at /usr/share/perl5/IO/Socket/SSL.pm line 3042.</div><div><br></div><div><br></div><div>It seems to have been fixed in Net::FTP v3.13 by this commit : <a href="https://github.com/steve-m-hay/perl-libnet/commit/67281c8f29f081962cb7702a87c16a4473b936e8#diff-506ff1e09133b22009f33a185017deec1c04bce8e645f818c7c4fb2665c57ec3" target="_blank">https://github.com/steve-m-hay/perl-libnet/commit/67281c8f29f081962cb7702a87c16a4473b936e8#diff-506ff1e09133b22009f33a185017deec1c04bce8e645f818c7c4fb2665c57ec3</a></div><div><br></div><div>This commit is present in perl 5.34, but I have not tested it.</div><div><br></div><div>Do you think that perl 5.34 could arrive in bullseye-backports ?</div><div><br></div><div>I am available for testing.<br></div><div>I am using Debian GNU/Linux 11.1, kernel 5.10.0-9, and libc6 2.31-13+deb11u2.</div><div><br></div><div>Best regards,</div></div>