ARM has two sync_file_range syscalls, sync_file_range and sync_file_range2. The former is apparently not used, and glibc calls the latter whenever a userspace program calls sync_file_range. I'm guessing systemd-nspawn doesn't know this, because the follow code consistently fails in an nspawn container on ARM:
void main()
{
int f = open("/tmp/syncrange.test",O_CREAT|O_RDWR,0666);
int r=sync_file_range(f, 0, 0, 0);
if (r) perror("sync_file_range");
close(f);
}
This seems to be causing problems specifically for borg(backup) and postgres:
ARM has two sync_file_range syscalls, sync_file_range and sync_file_range2. The former is apparently not used, and glibc calls the latter whenever a userspace program calls sync_file_range. I'm guessing systemd-nspawn doesn't know this, because the follow code consistently fails in an nspawn container on ARM:
#define _GNU_SOURCE
#include <fcntl.h>
#include <unistd.h>
#include <stdio.h>
#include <errno.h>
void main() tmp/syncrange. test",O_ CREAT|O_ RDWR,0666) ; file_range( f, 0, 0, 0);
perror( "sync_file_ range") ;
{
int f = open("/
int r=sync_
if (r)
close(f);
}
This seems to be causing problems specifically for borg(backup) and postgres:
https:/ /github. com/borgbackup/ borg/issues/ 4710 /www.postgresql .org/message- id/flat/ CA%2BhUKG% 2BydOUT4zjxb6Qm JWy8U9WbC- q%2BJWV7wLsEY9D f%3Dmw0Mw% 40mail. gmail.com# ac8f14897647dc7 eae3c7e7cbed36d 93
https:/
The solution should be to cherrypick https:/ /github. com/systemd/ systemd/ pull/13352, I am currently waiting for systemd to rebuild on a slow ARM box. Any chance of an SRU?
ProblemType: Bug dules: extcon_usb_gpio
DistroRelease: Ubuntu 18.04
Package: systemd-container 237-3ubuntu10.24
Uname: Linux 4.14.66+ armv7l
NonfreeKernelMo
ApportVersion: 2.20.9-0ubuntu7.7
Architecture: armhf
Date: Mon Aug 19 11:10:48 2019
ProcEnviron:
TERM=screen
PATH=(custom, no user)
LANG=en_GB.UTF-8
SHELL=/bin/bash
SourcePackage: systemd
UpgradeStatus: No upgrade log present (probably fresh install)