Error exit from the fuse process

Introduction FUSE (Filesystem in Userspace) is a very useful mechanism in many applications. The thing is, those applications  should not ...

Introduction

FUSE (Filesystem in Userspace) is a very useful mechanism in many applications. The thing is, those applications should not be focused on performance in terms of actual data transfers. FUSE has many advantages implied by userspace sandboxing, but for sure performance wasn’t the main design consideration. I’m not telling that it is a bad design or something wrong with FUSE itself. It is just focused on other aspects like security, stability and easiness of creating applications. The problem I’d like to discuss here is that Google decided to use FUSE as a frontend to actual data stored on the non-volatile memory.

FUSE has been introduced in Android 4.4 to handle «emulated» storage. Before that, «emulated» storage path was mounted as VFAT. Here’s how it looked on old ICS (output of mount command):

/dev/block/vold/179:14 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0

Don’t be confused by «sdcard» directory name. It is still internal flash. External storage is usually mounted as something like «sdcard1».

This kind of partition was needed because of compatibility reasons. The applications can store data no matter if it’s internal or external flash. In case of storing data on external SD cards, system has to deal usually with FAT32 filesystem. FAT32 is quite different than EXT4 used by Android internally. For instance, it’s not case sensitive and doesn’t handle discretionary access control.

Because of adding more Android specific permissions, Google decided to use FUSE to emulate FAT32:

/dev/fuse /mnt/shell/emulated fuse rw,nosuid,nodev,noexec,relatime,user_id=1023,group_id=1023,default_permissions,allow_other 0 0

FUSE

So, how does it work on Android?

First of all, there is a FUSE support enabled in kernel. Complementarily, there is a userspace daemon called «sdcard». On boot, the sdcard daemon mounts a /dev/fuse device to the emulated directory:

1743static int fuse_setup(struct fuse* fuse, gid_t gid, mode_t mask) {
1744    char opts[256];
1745
1746    fuse->fd = open("/dev/fuse", O_RDWR);
1747    if (fuse->fd == -1) {
1748        ERROR("failed to open fuse device: %sn", strerror(errno));
1749        return -1;
1750    }
1751
1752    umount2(fuse->dest_path, MNT_DETACH);
1753
1754    snprintf(opts, sizeof(opts),
1755            "fd=%i,rootmode=40000,default_permissions,allow_other,user_id=%d,group_id=%d",
1756            fuse->fd, fuse->global->uid, fuse->global->gid);
1757    if (mount("/dev/fuse", fuse->dest_path, "fuse", MS_NOSUID | MS_NODEV | MS_NOEXEC |
1758            MS_NOATIME, opts) != 0) {
1759        ERROR("failed to mount fuse filesystem: %sn", strerror(errno));
1760        return -1;
1761    }
1762
1763    fuse->gid = gid;
1764    fuse->mask = mask;
1765
1766    return 0;
1767}

After that, it polls on FUSE device waiting for messages from the kernel:

1581static void handle_fuse_requests(struct fuse_handler* handler)
1582{
1583    struct fuse* fuse = handler->fuse;
1584    for (;;) {
1585        ssize_t len = TEMP_FAILURE_RETRY(read(fuse->fd,
1586                handler->request_buffer, sizeof(handler->request_buffer)));
1587        if (len < 0) {
1588            if (errno == ENODEV) {
1589                ERROR("[%d] someone stole our marbles!n", handler->token);
1590                exit(2);
1591            }
1592            ERROR("[%d] handle_fuse_requests: errno=%dn", handler->token, errno);
1593            continue;
1594        }
(..)

Since now, every file operation inside directory mounted through FUSE will be handled in a specific way. For example, let’s say we’d like to read file «test.txt» located at /sdcard/test.txt. Note again: «sdcard» means internal flash.

root@android: # cd /sdcard
root@android:/sdcard # cat test.txt

We expect cat to issue open(), read() and close() system calls during that operation. Let’s have a look at what we get using strace:

root@android:/sdcard # strace -f -e open,openat,read,close cat test.txt
(..)
>>stripped output related to loading "cat" by shell<<
(..)                             = 0
openat(AT_FDCWD, "test.txt", O_RDONLY)  = 3
read(3, "1234n", 1024)                 = 5
read(3, "", 1024)                       = 0
close(3)                                = 0

Looks ok, but hey, what is sdcard daemon doing in the meantime? Strace sdcard in the same time:

root@android: # ps | grep sdcard
media_rw  714   1     23096  1528  ffffffff 81ca6254 S /system/bin/sdcard
root@android: # strace -f -p 714 
Process 714 attached with 3 threads
[pid   916] read(3,  <unfinished ...>
[pid   915] read(3,  <unfinished ...>
[pid   714] read(4,  <unfinished ...>
[pid   916] <... read resumed> "1122343200200@200177"..., 262224) = 49
[pid   916] faccessat(AT_FDCWD, "/data/media/0/test.txt", F_OK) = 0
[pid   916] newfstatat(AT_FDCWD, "/data/media/0/test.txt", {st_mode=S_IFREG|0664, st_size=5, ...}, AT_SYMLINK_NOFOLLOW) = 0
[pid   916] writev(3, [{"22022343", 16}, {"200261317200177223(nn"..., 128}], 2) = 144
[pid   915] <... read resumed> "01632343200261317200177"..., 262224) = 48
[pid   916] read(3,  <unfinished ...>
[pid   915] openat(AT_FDCWD, "/data/media/0/test.txt", O_RDONLY|O_LARGEFILE) = 5
[pid   915] writev(3, [{" 32343", 16}, {"260p300200177", 16}], 2 <unfinished ...>
[pid   916] <... read resumed> "P1742343200261317200177"..., 262224) = 80
[pid   915] <... writev resumed> )      = 32
[pid   916] pread64(5,  <unfinished ...>
[pid   915] read(3,  <unfinished ...>
[pid   916] <... pread64 resumed> "1234n", 4096, 0) = 5
[pid   916] writev(3, [{"2542343", 16}, {"1234n", 5}], 2) = 21
[pid   915] <... read resumed> "8352343200261317200177"..., 262224) = 56
[pid   916] read(3,  <unfinished ...>
[pid   915] newfstatat(AT_FDCWD, "/data/media/0/test.txt", {st_mode=S_IFREG|0664, st_size=5, ...}, AT_SYMLINK_NOFOLLOW) = 0
[pid   915] writev(3, [{"x52343", 16}, {"n224(5"..., 104}], 2) = 120
[pid   916] <... read resumed> "@3162343200261317200177"..., 262224) = 64
[pid   916] write(3, "2062343", 16) = 16
[pid   916] read(3, "@2272343200261317200177"..., 262224) = 64
[pid   916] close(5)                    = 0
[pid   916] write(3, "2072343", 16) = 16
[pid   916] read(3,  <unfinished ...>
[pid   915] read(3, ^CProcess 714 detached
Process 915 detached

A lot is happening. This is because each file operation will now work in a following way:

  1. Userspace application issues system call that will be handled by FUSE driver in kernel (we see it in the first strace output)
  2. FUSE driver in kernel notifies userspace daemon (sdcard) about new request
  3. Userspace daemon reads /dev/fuse
  4. Userspace daemon parses command and recognizes file operation (ex. open)
  5. Userspace daemon issues system call to the actual filesystem (EXT4)
  6. Kernel handles physical data access and sends data back to the userspace
  7. Userspace modifies (or not) data and passes it through /dev/fuse to kernel again
  8. Kernel completes original system call and moves data to the actual userspace application (in our example cat)

Uff, that’s a lot, isn’t it? 

Let’s see what side effects such attitude has. The obvious one is performance overhead for each additional system call. Here are numbers (all tests were performed several times, each time similar results were observed):

Test #1: Copy big file within one partition.

EXT4 FS:

root@android:/data # echo 3 > /proc/sys/vm/drop_caches
root@android:/data # dd if=bigbuck.in of=bigbuck.out bs=1m                      
691+1 records in
691+1 records out
725106140 bytes transferred in 10.779 secs (67270260 bytes/sec)

FUSE:

root@android:/sdcard # echo 3 > /proc/sys/vm/drop_caches                      
root@android:/sdcard # dd if=bigbuck.in of=bigbuck.out bs=1m                  
691+1 records in
691+1 records out
725106140 bytes transferred in 13.031 secs (55644704 bytes/sec)

RESULT:

In this test, FUSE is about 17% slower.

Test #2: Copy a lot of small files within one partition. There were 10 000 files each one 5kB of size.

EXT4 FS:

root@android:/data # echo 3 > /proc/sys/vm/drop_caches
root@android:/data # time cp small/* small2/                                  
    0m17.27s real     0m0.32s user     0m6.07s system

FUSE:

root@android:/sdcard # echo 3 > /proc/sys/vm/drop_caches                      
root@android:/sdcard # time cp small/* small2/                                
    1m3.03s real     0m1.05s user     0m9.59s system

RESULT:

I think the comment is superfluous. It took over 1 minute (!) to copy ~50MB of small files on FUSE mounted partition in comparison to ~17 seconds on EXT4 FS.

Double caching

Another implication is double caching of data.  Linux Kernel uses page cache mechanism to store recently accessed data in memory, specifically data from a non-volatile storage. This greatly improves data access performance. However, we don’t want to have the same data cached twice. Unfortunately, this will happen because of the way in which FUSE is used on Android.

Observing double caching behavior caused by FUSE is very simple:

  1. Create file with a known size
  2. Copy it into /sdcard folder on the phone (/sdcard is a symlink to
    /storage/emulated/legacy which is a symlink to /mnt/shell/emulated/0
    which is mounted as FUSE)
  3. Drop page cache -> take a snapshot of page cache usage -> read
    test file -> take another snapshot of page cache -> see a
    difference between page cache usage before and after reading the file:
root@android: # echo 3 > /proc/sys/vm/drop_caches ; sleep 1 ; cat /proc/meminfo | grep Cache ; cat /sdcard/test_file > /dev/null ; cat /proc/meminfo | grep Cache

If size of the file is for example 10MB we’ll get something like this:

before file operation:  

after file operation: 

Expected result would be 10MB more than 241MB in cache, so something around 251MB. Instead, we see 263MB in cache after reading 10MB of data. It means kernel cached twice as needed. The same test performed directly
on EXT4 FS (for instance in /data folder) will show, as expected, 10MB more of cached pages.

So, we have the same data cached twice. Once as a user application that issued
original open/read system call and once as «sdcard» daemon. First data
is cached by FUSE, second one by EXT4 FS.

When I first noticed it I tried to force FUSE to skip caching. Here are my notes from that time:

We can skip fuse cache by providing FOPEN_DIRECT_IO inside kernel. I
tested this solution, however it affected performance significantly.
Although caching works ok (meaning there is only one copy of data in
cache and subsequent reads doesn’t generate i/o to the flash) there is
additional overhead for switching more often between sdcard daemon and
fuse fs in kernel. Maybe it can be tweaked more.

There is FOPEN_KEEP_CACHE in fuse that might be useful – it needs more investigation.
Other solution is to provide O_DIRECT flag in sdcard daemon when it’s
opening ext4fs files. We then discard caches from ext4fs and we should
be able to use page cache created by fuse. However, using O_DIRECT
requires user buffers to be aligned in memory to the block size. Also
the size of data chunks should be aligned. Sdcard daemon is prepared for
external O_DIRECT requests by Google:
https://android-review.googlesource.com/#/c/82141/4/
https://android-review.googlesource.com/#/c/82570/
. The possible solution would be to enable KEEP_CACHE in Fuse on kernel
side and use O_DIRECT to all sdcard daemon requests. I did it for
‘read’ case and it works, however there is a significant overhead for
the first read of data. Subsequent reads are much faster than originally
(due to caching in fuse). Using it for writes may be tricky though.

Another way to solve it is to provide POSIX_FADV_DONTNEED fadvise in
sdcard dameon. I tested it as well, however again — it affects
performance too much.

Basically, the most important conclusion from above investigation was: get rid of FUSE and implement FAT32 emulation layer inside kernel.

Other issues

Beside performance and double caching, there are other problems with FUSE on Android. For instance, not all features from FAT32 are implemented in sdcard daemon. There were issues with utime() system call and with lack of full support for O_DIRECT flag.

I don’t want to blame Google only. As officialy stated:

«Devices may provide external storage by emulating a case-insensitive, permissionless filesystem backed by internal storage. One possible
implementation is provided by the FUSE daemon in system/core/sdcard,
which can be added as a device-specific init.rc service». 

FUSE daemon is
only example implementation that is easiest to maintain, but it has
also a lot of drawbacks.
What’s more interesting, some mobile vendors (Samsung, Motorola) have already realized it and replaced FUSE with their own in-kernel (or mixed) implementation. Samsung has created driver based on WrapFS called «sdcardfs». In my opinion it’s the best approach: use WrapFS to implement FAT32 emulation layer inside kernel. If Samsung implemented it correctly it’s another question, but from what I saw in officially published Samsung kernel sources it’s not so bad.

Summary

To sum-up why does FUSE on Android suck:

  • Performance
  • Double caching
  • Several other minor defects, like missing allow_utime flag

Note, Android as an operating system doesn’t access files via FUSE internally. However, high-level applications do. Use cases like saving photos from camera, recording videos or reading offline maps will suffer the most from FUSE drawbacks described in this article. 

  • What version of the OS are you currently using lsb_release -a and uname -a?
    Linux frontuniform 5.2.0-2-amd64 Release needs testing in VM and on a NUC #1 SMP Debian 5.2.9-2 (2019-08-21) x86_64 GNU/L

  • What T-Pot version are you currently using?
    19.3.1

  • What edition (Standard, Nextgen, etc.) of T-Pot are you running?
    standard

  • What architecture are you running on (i.e. hardware, cloud, VM, etc.)?
    VM VMWare

  • Did you have any problems during the install? If yes, please attach /install.log /install.err.
    NO

  • How long has your installation been running?
    30 minutes. it’s the third time, with same error, also with NextGen

  • Did you install upgrades, packages or use the update script?
    I tried the Upgrade to solve the problem

  • Did you modify any scripts or configs? If yes, please attach the changes.
    No

  • Please provide a screenshot of glances and htop.
    command not found

  • How much free disk space is available (df -h)?
    [root@frontuniform:/opt/tpot]# df -h
    Filesystem Size Used Avail Use% Mounted on
    udev 7.9G 0 7.9G 0% /dev
    tmpfs 1.6G 8.6M 1.6G 1% /run
    /dev/sda2 169G 2.0G 159G 2% /
    tmpfs 7.9G 0 7.9G 0% /dev/shm
    tmpfs 5.0M 0 5.0M 0% /run/lock
    tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup
    tmpfs 1.6G 0 1.6G 0% /run/user/1000

  • What is the current container status (dps.sh)?
    [root@frontuniform:/opt/tpot]# dps.sh
    grc: docker: No such file or directory
    ========| System |========
    Date: Fri 23 Aug 2019 12:20:27 PM UTC
    Uptime: 12:20:27 up 34 min, 2 users, load average: 0.00, 0.02, 0.00

NAME STATUS PORTS
adbhoney DOWN
ciscoasa DOWN
conpot_guardian_ast DOWN
conpot_iec104 DOWN
conpot_ipmi DOWN
conpot_kamstrup_382 DOWN
cowrie DOWN
cyberchef DOWN
dionaea DOWN
elasticpot DOWN
elasticsearch DOWN
ewsposter DOWN
head DOWN
heralding DOWN
honeytrap DOWN
kibana DOWN
logstash DOWN
mailoney DOWN
medpot DOWN
nginx DOWN
p0f DOWN
rdpy DOWN
snare DOWN
spiderfoot DOWN
suricata DOWN
tanner DOWN
tanner_api DOWN
tanner_phpox DOWN
tanner_redis DOWN
tanner_web DOWN
[root@frontuniform:/opt/tpot]#

  • What is the status of the T-Pot service (systemctl status tpot)?
    [root@frontuniform:/opt/tpot]# systemctl status tpot
    ● tpot.service — tpot
    Loaded: loaded (/etc/systemd/system/tpot.service; enabled; vendor preset: enabled)
    Active: failed (Result: exit-code) since Fri 2019-08-23 11:45:49 UTC; 35min ago

Aug 23 11:45:49 frontuniform systemd[1]: tpot.service: Service RestartSec=5s expired, scheduling restart.
Aug 23 11:45:49 frontuniform systemd[1]: tpot.service: Failed to schedule restart job: Unit docker.service not found.
Aug 23 11:45:49 frontuniform systemd[1]: tpot.service: Failed with result ‘exit-code’.
[root@frontuniform:/opt/tpot]#

  • What ports are being occupied? Stop T-Pot systemctl stop tpot and run netstat -tulpen
    [root@frontuniform:/opt/tpot]# netstat -tulpen
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
    tcp 0 0 0.0.0.0:64295 0.0.0.0:* LISTEN 0 13045 543/sshd
    tcp6 0 0 :::64295 :::* LISTEN 0 13056 543/sshd

  • If a single container shows as DOWN you can run docker logs <container-name> for the latest log entries
    no log.
    all like this:
    [root@frontuniform:/opt/tpot]# docker logs ciscoasa
    bash: docker: command not found

update.sh logs with errors
[root@frontuniform:/opt/tpot]# ./update.sh -y

Checking for Release ID

Checking for version tag …

19.03.1 is eligible for the update procedure. [ OK ]

Checking for T-Pot configuration file …

/opt/tpot/etc/tpot.yml [ OK ]

Now checking availability of …

https://index.docker.io [ OK ]
https://github.com [ OK ]
https://pypi.python.org [ OK ]
https://debian.org [ OK ]

Need to stop T-Pot …

Now stopping T-Pot. [ OK ]
Now cleaning up containers.

./update.sh: line 123: docker: command not found

Create a backup, just in case …

Building archive in /root/201908231215_tpot_backup.tgz [ OK ]

Now checking for newer files in repository …

Fetching origin

Pulling updates from repository.

HEAD is now at bc6e94d spiderfoot, head bump to latest master
Already up to date.

Installing apt-fast

—2019-08-23 12:15:53— https://raw.githubusercontent.com/ilikenwf/apt-fast/master/apt-fast
Resolving raw.githubusercontent.com (raw.githubusercontent.com)… 151.101.0.133, 151.101.64.133, 151.101.128.133, …
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.0.133|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 21346 (21K) [text/plain]
Saving to: ‘/usr/local/sbin/apt-fast’

/usr/local/sbin/apt-fast 100%[==================================================================================================================>] 20.85K —.-KB/s in 0.006s

2019-08-23 12:15:53 (3.13 MB/s) — ‘/usr/local/sbin/apt-fast’ saved [21346/21346]

Now upgrading packages …

Setting up fuse (2.9.9-1) …
dpkg: error processing package fuse (—configure):
installed fuse package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
fuse
Reading package lists… Done
Building dependency tree
Reading state information… Done
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following packages will be REMOVED:
libbluetooth3 libmm-glib0 libndp0 libnm0 libntfs-3g883 libpython-stdlib libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib libteamdctl0 network-manager node-normalize.css python python-minimal
python2 python2-minimal python2.7 python2.7-minimal
0 upgraded, 0 newly installed, 18 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 35.2 MB disk space will be freed.
(Reading database … 34968 files and directories currently installed.)
Removing network-manager (1.20.0-1) …
Removing libbluetooth3:amd64 (5.50-1+b1) …
Removing libmm-glib0:amd64 (1.10.4-0.1) …
Removing libndp0:amd64 (1.6-1+b1) …
Removing libnm0:amd64 (1.20.0-1) …
Removing libntfs-3g883 (1:2017.3.23AR.3-3) …
Removing python (2.7.16-1) …
Removing libpython-stdlib:amd64 (2.7.16-1) …
Removing python2 (2.7.16-1) …
Removing libpython2-stdlib:amd64 (2.7.16-1) …
Removing python2.7 (2.7.16-3) …
Removing libpython2.7-stdlib:amd64 (2.7.16-3) …
Removing python-minimal (2.7.16-1) …
Removing libteamdctl0:amd64 (1.28-1+b1) …
Removing node-normalize.css (8.0.1-3) …
Removing python2-minimal (2.7.16-1) …
Removing python2.7-minimal (2.7.16-3) …
Removing libpython2.7-minimal:amd64 (2.7.16-3) …
Setting up fuse (2.9.9-1) …
dpkg: error processing package fuse (—configure):
installed fuse package post-installation script subprocess returned error exit status 1
Processing triggers for libc-bin (2.28-10) …
Processing triggers for man-db (2.8.6.1-1) …
Processing triggers for dbus (1.12.16-1) …
Processing triggers for mime-support (3.63) …
Errors were encountered while processing:
fuse
E: Sub-process /usr/bin/dpkg returned an error code (1)
Hit:1 http://deb.debian.org/debian unstable InRelease
Reading package lists… Done
Reading package lists… Done
Building dependency tree
Reading state information… Done
Note, selecting ‘man-db’ instead of ‘man’
apache2-utils is already the newest version (2.4.41-1).
apparmor is already the newest version (2.13.3-4).
aria2 is already the newest version (1.34.0-4+b1).
ca-certificates is already the newest version (20190110).
console-setup is already the newest version (1.193).
console-setup-linux is already the newest version (1.193).
libcrack2 is already the newest version (2.9.6-2+b1).
curl is already the newest version (7.65.3-1).
dialog is already the newest version (1.3-20190211-1).
figlet is already the newest version (2.2.5-3+b1).
git is already the newest version (1:2.23.0-1).
grc is already the newest version (1.11.3-1).
haveged is already the newest version (1.9.4-2).
iptables is already the newest version (1.8.3-2).
kbd is already the newest version (2.0.4-4).
libltdl7 is already the newest version (2.4.6-10).
man-db is already the newest version (2.8.6.1-1).
mosh is already the newest version (1.3.2-2.1+b1).
net-tools is already the newest version (1.60+git20180626.aebd88e-1).
netselect-apt is already the newest version (0.3.ds1-28).
openssh-server is already the newest version (1:8.0p1-4).
openssl is already the newest version (1.1.1c-1).
psmisc is already the newest version (23.2-1+b1).
software-properties-common is already the newest version (0.96.20.2-2).
toilet is already the newest version (0.3-1.2).
unattended-upgrades is already the newest version (1.14).
wget is already the newest version (1.20.3-1+b1).
wpasupplicant is already the newest version (2:2.9-1).
The following additional packages will be installed:
aufs-dkms bind9-host binutils binutils-common binutils-x86-64-linux-gnu blt cockpit-bridge cockpit-dashboard cockpit-networkmanager cockpit-packagekit cockpit-storaged cockpit-system cockpit-ws cpp cpp-8
cpp-9 crda dbus-user-session dconf-gsettings-backend dconf-service dkms dns-root-data dnsmasq-base dosfstools dpkg-dev exfat-fuse exfat-utils fakeroot fontconfig-config fonts-lyx g++ g++-9 gcc gcc-8
gcc-8-base gcc-9 gdisk geoip-database glib-networking glib-networking-common glib-networking-services golang-docker-credential-helpers gsettings-desktop-schemas gyp hddtemp javascript-common
libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan5 libatasmart4 libatomic1 libbind9-161 libbinutils libblas3 libblockdev-crypto2 libblockdev-fs2 libblockdev-loop2
libblockdev-mdraid2 libblockdev-part-err2 libblockdev-part2 libblockdev-swap2 libblockdev-utils2 libblockdev2 libbluetooth3 libbytesize1 libc-dev-bin libc6-dev libcc1-0 libdconf1 libdns1104 libdpkg-perl
libevent-core-2.1-6 libevent-pthreads-2.1-6 libexpat1-dev libfakeroot libfile-fcntllock-perl libfontconfig1 libfstrm0 libgcc-8-dev libgcc-9-dev libgeoip1 libgfortran5 libgomp1 libgpgme11 libgudev-1.0-0
libice6 libimagequant0 libintl-perl libintl-xs-perl libirs161 libisc1100 libisccc161 libisccfg163 libisl19 libitm1 libiw30 libjbig0 libjim0.77 libjpeg62-turbo libjq1 libjs-inherits libjs-is-typedarray
libjs-jquery libjs-jquery-ui libjs-sphinxdoc libjs-underscore libjson-glib-1.0-0 libjson-glib-1.0-common liblapack3 liblcms2-2 liblsan0 liblwres161 libmbim-glib4 libmbim-proxy libmm-glib0
libmodule-find-perl libmodule-scandeps-perl libmpc3 libmpfr6 libmpx2 libndp0 libnm0 libnode-dev libnode64 libnspr4 libnss3 libntfs-3g883 libonig5 libopts25 libparted-fs-resize0 libparted2 libpcap0.8
libproc-processtable-perl libprotobuf-c1 libproxy1v5 libpwquality-common libpwquality-tools libpwquality1 libpython-all-dev libpython-dev libpython-stdlib libpython2-dev libpython2-stdlib libpython2.7
libpython2.7-dev libpython2.7-minimal libpython2.7-stdlib libqmi-glib5 libqmi-proxy libqrencode4 libquadmath0 libsecret-1-0 libsecret-common libsensors-config libsensors5 libsm6 libsort-naturally-perl
libssh-4 libssl-dev libstdc++-9-dev libtcl8.6 libteamdctl0 libterm-readkey-perl libtiff5 libtk8.6 libtsan0 libubsan1 libudisks2-0 libusb-1.0-0 libuv1 libuv1-dev libvolume-key1 libwebp6 libwebpdemux2
libwebpmux3 libxft2 libxmu6 libxrender1 libxss1 libxt6 linux-compiler-gcc-8-x86 linux-headers-5.2.0-2-amd64 linux-headers-5.2.0-2-common linux-headers-amd64 linux-kbuild-5.2 linux-libc-dev lm-sensors
make manpages manpages-dev mdadm modemmanager mtools needrestart network-manager node-abbrev node-ajv node-ansi node-ansi-align node-ansi-regex node-ansi-styles node-ansistyles node-aproba node-archy
node-are-we-there-yet node-asn1 node-assert-plus node-asynckit node-aws-sign2 node-aws4 node-balanced-match node-bcrypt-pbkdf node-bluebird node-boxen node-brace-expansion node-builtin-modules
node-builtins node-cacache node-call-limit node-camelcase node-caseless node-chalk node-chownr node-cli-boxes node-cliui node-clone node-color-convert node-color-name node-combined-stream node-concat-map
node-concat-stream node-config-chain node-console-control-strings node-copy-concurrently node-core-util-is node-cross-spawn node-cyclist node-dashdash node-decamelize node-decompress-response
node-deep-extend node-defaults node-delayed-stream node-delegates node-detect-indent node-detect-newline node-duplexer3 node-duplexify node-ecc-jsbn node-editor node-encoding node-end-of-stream
node-errno node-escape-string-regexp node-execa node-extend node-extsprintf node-fast-deep-equal node-find-up node-flush-write-stream node-forever-agent node-form-data node-from2 node-fs-vacuum
node-fs-write-stream-atomic node-fs.realpath node-gauge node-get-caller-file node-get-stream node-getpass node-glob node-got node-graceful-fs node-gyp node-har-schema node-har-validator node-has-flag
node-has-symbol-support-x node-has-to-string-tag-x node-has-unicode node-hosted-git-info node-http-signature node-iconv-lite node-iferr node-import-lazy node-imurmurhash node-inflight node-inherits
node-ini node-invert-kv node-is-builtin-module node-is-npm node-is-object node-is-plain-obj node-is-retry-allowed node-is-stream node-is-typedarray node-isarray node-isexe node-isstream node-isurl
node-jsbn node-json-parse-better-errors node-json-schema node-json-schema-traverse node-json-stable-stringify node-json-stringify-safe node-jsonify node-jsonparse node-jsonstream node-jsprim
node-latest-version node-lazy-property node-lcid node-libnpx node-locate-path node-lockfile node-lowercase-keys node-lru-cache node-mem node-mime-types node-mimic-fn node-mimic-response node-minimatch
node-minimist node-mississippi node-mkdirp node-move-concurrently node-mute-stream node-node-uuid node-nopt node-normalize-package-data node-normalize.css node-npm-package-arg node-npm-run-path
node-npmlog node-oauth-sign node-object-assign node-once node-opener node-os-locale node-osenv node-p-cancelable node-p-finally node-p-limit node-p-locate node-p-timeout node-package-json
node-parallel-transform node-path-exists node-path-is-absolute node-path-is-inside node-performance-now node-prepend-http node-process-nextick-args node-promise-inflight node-promzard node-proto-list
node-prr node-pump node-pumpify node-punycode node-qs node-qw node-rc node-read node-read-package-json node-readable-stream node-registry-auth-token node-registry-url node-request node-require-directory
node-require-main-filename node-resolve-from node-retry node-rimraf node-run-queue node-safe-buffer node-semver node-semver-diff node-set-blocking node-sha node-shebang-command node-shebang-regex
node-signal-exit node-slash node-slide node-sorted-object node-spdx-correct node-spdx-expression-parse node-spdx-license-ids node-sshpk node-ssri node-stream-each node-stream-iterate node-stream-shift
node-string-decoder node-string-width node-strip-ansi node-strip-eof node-strip-json-comments node-supports-color node-tar node-term-size node-text-table node-through node-through2 node-timed-out
node-tough-cookie node-tunnel-agent node-tweetnacl node-typedarray node-uid-number node-unique-filename node-unpipe node-uri-js node-url-parse-lax node-url-to-options node-util-deprecate node-uuid
node-validate-npm-package-license node-validate-npm-package-name node-verror node-wcwidth.js node-which node-which-module node-wide-align node-widest-line node-wrap-ansi node-wrappy
node-write-file-atomic node-xdg-basedir node-xtend node-y18n node-yallist node-yargs node-yargs-parser nodejs nodejs-doc ntfs-3g parted ppp python python-all python-all-dev python-asn1crypto
python-cffi-backend python-configparser python-crypto python-cryptography python-dbus python-dev python-entrypoints python-enum34 python-gi python-ipaddress python-keyring python-keyrings.alt
python-matplotlib-data python-minimal python-pip-whl python-pkg-resources python-secretstorage python-setuptools python-six python-wheel python-xdg python2 python2-dev python2-minimal python2.7
python2.7-dev python2.7-minimal python3-bottle python3-cached-property python3-certifi python3-chardet python3-cycler python3-dateutil python3-distutils python3-docker python3-dockerpty
python3-dockerpycreds python3-docopt python3-idna python3-influxdb python3-jsonschema python3-kiwisolver python3-lib2to3 python3-matplotlib python3-netifaces python3-numpy python3-olefile python3-pil
python3-pkg-resources python3-ply python3-psutil python3-pyasn1 python3-pycryptodome python3-pyinotify python3-pyparsing python3-pysmi python3-pysnmp4 python3-pystache python3-requests python3-six
python3-systemd python3-texttable python3-tk python3-tz python3-urllib3 python3-websocket python3-yaml qrencode runc sntp syslinux-common tini tk8.6-blt2.5 tree ttf-bitstream-vera udisks2 usb-modeswitch
usb-modeswitch-data vim-runtime whois wireless-regdb x11-common xclip
Suggested packages:
aufs-dev binutils-doc blt-demo cockpit-doc cockpit-pcp cockpit-machines xdg-utils cpp-doc gcc-8-locales gcc-9-locales python3-apport menu rblcheck docker-doc btrfs-progs debootstrap rinse xfsprogs
zfs-fuse | zfsutils debian-keyring mailx monit sqlite3 g++-multilib g++-9-multilib gcc-9-doc libstdc++6-9-dbg gcc-multilib autoconf automake libtool flex bison gdb gcc-doc gcc-8-multilib gcc-8-doc
libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan5-dbg liblsan0-dbg libtsan0-dbg libubsan1-dbg libmpx2-dbg libquadmath0-dbg gcc-9-multilib wodim cdrkit-doc glances-doc lsof strace apache2
| lighttpd | httpd glibc-doc bzr geoip-bin libjs-jquery-ui-docs liblcms2-utils libparted-dev libparted-i18n libssl-doc libstdc++-9-doc tcl8.6 tk8.6 fancontrol read-edid i2c-tools make-doc dracut-core
floppyd needrestart-session | libnotify-bin iucode-tool libteam-utils libjs-html5shiv ntp-doc parted-doc libxml-simple-perl ruby doc-base python-doc python-tk python-cryptography-doc
python-cryptography-vectors python-dbus-dbg python-dbus-doc python-enum34-doc python-gi-cairo gnome-keyring libkf5wallet-bin gir1.2-gnomekeyring-1.0 python-gdata python-keyczar python-secretstorage-doc
python-setuptools-doc python2-doc python2.7-doc binfmt-support python-cycler-doc python-jsonschema-doc dvipng ffmpeg gir1.2-gtk-3.0 ghostscript inkscape ipython3 librsvg2-common python-matplotlib-doc
python3-cairocffi python3-gi-cairo python3-gobject python3-nose python3-pyqt4 python3-scipy python3-sip python3-tornado texlive-extra-utils texlive-latex-extra ttf-staypuft gfortran python-numpy-doc
python3-dev python3-pytest python3-numpy-dbg python-pil-doc python3-pil-dbg python3-setuptools python-ply-doc python-psutil-doc python-pyinotify-doc python-pyparsing-doc python3-cryptography
python3-openssl python3-socks tix python3-tk-dbg f2fs-tools nilfs-tools reiserfsprogs udftools udisks2-bcache udisks2-btrfs udisks2-lvm2 udisks2-vdo udisks2-zram zip comgt wvdial ctags vim-doc
vim-scripts
Recommended packages:
default-mta | mail-transport-agent
The following NEW packages will be installed:
apt-transport-https aufs-dkms aufs-tools bash-completion bind9-host binutils binutils-common binutils-x86-64-linux-gnu blt build-essential cgroupfs-mount cockpit cockpit-bridge cockpit-dashboard
cockpit-docker cockpit-networkmanager cockpit-packagekit cockpit-storaged cockpit-system cockpit-ws cpp cpp-8 cpp-9 crda dbus-user-session dconf-gsettings-backend dconf-service debconf-utils dkms
dns-root-data dnsmasq-base dnsutils docker-compose docker.io dosfstools dpkg-dev dstat ethtool exfat-fuse exfat-utils fail2ban fakeroot fontconfig-config fonts-lyx g++ g++-9 gcc gcc-8 gcc-8-base gcc-9
gdisk genisoimage geoip-database glances glib-networking glib-networking-common glib-networking-services golang-docker-credential-helpers gsettings-desktop-schemas gyp hddtemp html2text htop iw
javascript-common jq libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan5 libatasmart4 libatomic1 libbind9-161 libbinutils libblas3 libblockdev-crypto2 libblockdev-fs2
libblockdev-loop2 libblockdev-mdraid2 libblockdev-part-err2 libblockdev-part2 libblockdev-swap2 libblockdev-utils2 libblockdev2 libbluetooth3 libbytesize1 libc-dev-bin libc6-dev libcc1-0 libdconf1
libdns1104 libdpkg-perl libevent-core-2.1-6 libevent-pthreads-2.1-6 libexpat1-dev libfakeroot libfile-fcntllock-perl libfontconfig1 libfstrm0 libgcc-8-dev libgcc-9-dev libgeoip1 libgfortran5 libgomp1
libgpgme11 libgudev-1.0-0 libice6 libimagequant0 libintl-perl libintl-xs-perl libirs161 libisc1100 libisccc161 libisccfg163 libisl19 libitm1 libiw30 libjbig0 libjim0.77 libjpeg62-turbo libjq1
libjs-inherits libjs-is-typedarray libjs-jquery libjs-jquery-ui libjs-sphinxdoc libjs-underscore libjson-glib-1.0-0 libjson-glib-1.0-common liblapack3 liblcms2-2 liblsan0 liblwres161 libmbim-glib4
libmbim-proxy libmm-glib0 libmodule-find-perl libmodule-scandeps-perl libmpc3 libmpfr6 libmpx2 libndp0 libnm0 libnode-dev libnode64 libnspr4 libnss3 libntfs-3g883 libonig5 libopts25 libparted-fs-resize0
libparted2 libpcap0.8 libproc-processtable-perl libprotobuf-c1 libproxy1v5 libpwquality-common libpwquality-tools libpwquality1 libpython-all-dev libpython-dev libpython-stdlib libpython2-dev
libpython2-stdlib libpython2.7 libpython2.7-dev libpython2.7-minimal libpython2.7-stdlib libqmi-glib5 libqmi-proxy libqrencode4 libquadmath0 libsecret-1-0 libsecret-common libsensors-config libsensors5
libsm6 libsort-naturally-perl libssh-4 libssl-dev libstdc++-9-dev libtcl8.6 libteamdctl0 libterm-readkey-perl libtiff5 libtk8.6 libtsan0 libubsan1 libudisks2-0 libusb-1.0-0 libuv1 libuv1-dev
libvolume-key1 libwebp6 libwebpdemux2 libwebpmux3 libxft2 libxmu6 libxrender1 libxss1 libxt6 linux-compiler-gcc-8-x86 linux-headers-5.2.0-2-amd64 linux-headers-5.2.0-2-common linux-headers-amd64
linux-kbuild-5.2 linux-libc-dev lm-sensors make manpages manpages-dev mdadm modemmanager mtools multitail needrestart network-manager node-abbrev node-ajv node-ansi node-ansi-align node-ansi-regex
node-ansi-styles node-ansistyles node-aproba node-archy node-are-we-there-yet node-asn1 node-assert-plus node-asynckit node-aws-sign2 node-aws4 node-balanced-match node-bcrypt-pbkdf node-bluebird
node-boxen node-brace-expansion node-builtin-modules node-builtins node-cacache node-call-limit node-camelcase node-caseless node-chalk node-chownr node-cli-boxes node-cliui node-clone node-color-convert
node-color-name node-combined-stream node-concat-map node-concat-stream node-config-chain node-console-control-strings node-copy-concurrently node-core-util-is node-cross-spawn node-cyclist node-dashdash
node-decamelize node-decompress-response node-deep-extend node-defaults node-delayed-stream node-delegates node-detect-indent node-detect-newline node-duplexer3 node-duplexify node-ecc-jsbn node-editor
node-encoding node-end-of-stream node-errno node-escape-string-regexp node-execa node-extend node-extsprintf node-fast-deep-equal node-find-up node-flush-write-stream node-forever-agent node-form-data
node-from2 node-fs-vacuum node-fs-write-stream-atomic node-fs.realpath node-gauge node-get-caller-file node-get-stream node-getpass node-glob node-got node-graceful-fs node-gyp node-har-schema
node-har-validator node-has-flag node-has-symbol-support-x node-has-to-string-tag-x node-has-unicode node-hosted-git-info node-http-signature node-iconv-lite node-iferr node-import-lazy node-imurmurhash
node-inflight node-inherits node-ini node-invert-kv node-is-builtin-module node-is-npm node-is-object node-is-plain-obj node-is-retry-allowed node-is-stream node-is-typedarray node-isarray node-isexe
node-isstream node-isurl node-jsbn node-json-parse-better-errors node-json-schema node-json-schema-traverse node-json-stable-stringify node-json-stringify-safe node-jsonify node-jsonparse node-jsonstream
node-jsprim node-latest-version node-lazy-property node-lcid node-libnpx node-locate-path node-lockfile node-lowercase-keys node-lru-cache node-mem node-mime-types node-mimic-fn node-mimic-response
node-minimatch node-minimist node-mississippi node-mkdirp node-move-concurrently node-mute-stream node-node-uuid node-nopt node-normalize-package-data node-normalize.css node-npm-package-arg
node-npm-run-path node-npmlog node-oauth-sign node-object-assign node-once node-opener node-os-locale node-osenv node-p-cancelable node-p-finally node-p-limit node-p-locate node-p-timeout
node-package-json node-parallel-transform node-path-exists node-path-is-absolute node-path-is-inside node-performance-now node-prepend-http node-process-nextick-args node-promise-inflight node-promzard
node-proto-list node-prr node-pump node-pumpify node-punycode node-qs node-qw node-rc node-read node-read-package-json node-readable-stream node-registry-auth-token node-registry-url node-request
node-require-directory node-require-main-filename node-resolve-from node-retry node-rimraf node-run-queue node-safe-buffer node-semver node-semver-diff node-set-blocking node-sha node-shebang-command
node-shebang-regex node-signal-exit node-slash node-slide node-sorted-object node-spdx-correct node-spdx-expression-parse node-spdx-license-ids node-sshpk node-ssri node-stream-each node-stream-iterate
node-stream-shift node-string-decoder node-string-width node-strip-ansi node-strip-eof node-strip-json-comments node-supports-color node-tar node-term-size node-text-table node-through node-through2
node-timed-out node-tough-cookie node-tunnel-agent node-tweetnacl node-typedarray node-uid-number node-unique-filename node-unpipe node-uri-js node-url-parse-lax node-url-to-options node-util-deprecate
node-uuid node-validate-npm-package-license node-validate-npm-package-name node-verror node-wcwidth.js node-which node-which-module node-wide-align node-widest-line node-wrap-ansi node-wrappy
node-write-file-atomic node-xdg-basedir node-xtend node-y18n node-yallist node-yargs node-yargs-parser nodejs nodejs-doc npm ntfs-3g ntp parted pass ppp prips pv python python-all python-all-dev
python-asn1crypto python-cffi-backend python-configparser python-crypto python-cryptography python-dbus python-dev python-entrypoints python-enum34 python-gi python-ipaddress python-keyring
python-keyrings.alt python-matplotlib-data python-minimal python-pip python-pip-whl python-pkg-resources python-secretstorage python-setuptools python-six python-wheel python-xdg python2 python2-dev
python2-minimal python2.7 python2.7-dev python2.7-minimal python3-bottle python3-cached-property python3-certifi python3-chardet python3-cycler python3-dateutil python3-distutils python3-docker
python3-dockerpty python3-dockerpycreds python3-docopt python3-idna python3-influxdb python3-jsonschema python3-kiwisolver python3-lib2to3 python3-matplotlib python3-netifaces python3-numpy
python3-olefile python3-pil python3-pkg-resources python3-ply python3-psutil python3-pyasn1 python3-pycryptodome python3-pyinotify python3-pyparsing python3-pysmi python3-pysnmp4 python3-pystache
python3-requests python3-six python3-systemd python3-texttable python3-tk python3-tz python3-urllib3 python3-websocket python3-yaml qrencode runc sntp syslinux syslinux-common tini tk8.6-blt2.5 tree
ttf-bitstream-vera udisks2 unzip usb-modeswitch usb-modeswitch-data vim vim-runtime whois wireless-regdb wireless-tools x11-common xclip
0 upgraded, 561 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 0 B/259 MB of archives.
After this operation, 951 MB of additional disk space will be used.
Extracting templates from packages: 100%
Preconfiguring packages …
Selecting previously unselected package libpython2.7-minimal:amd64.
(Reading database … 33972 files and directories currently installed.)
Preparing to unpack …/0-libpython2.7-minimal_2.7.16-3_amd64.deb …
Unpacking libpython2.7-minimal:amd64 (2.7.16-3) …
Selecting previously unselected package python2.7-minimal.
Preparing to unpack …/1-python2.7-minimal_2.7.16-3_amd64.deb …
Unpacking python2.7-minimal (2.7.16-3) …
Selecting previously unselected package python2-minimal.
Preparing to unpack …/2-python2-minimal_2.7.16-1_amd64.deb …
Unpacking python2-minimal (2.7.16-1) …
Selecting previously unselected package python-minimal.
Preparing to unpack …/3-python-minimal_2.7.16-1_amd64.deb …
Unpacking python-minimal (2.7.16-1) …
Selecting previously unselected package libpython2.7-stdlib:amd64.
Preparing to unpack …/4-libpython2.7-stdlib_2.7.16-3_amd64.deb …
Unpacking libpython2.7-stdlib:amd64 (2.7.16-3) …
Selecting previously unselected package python2.7.
Preparing to unpack …/5-python2.7_2.7.16-3_amd64.deb …
Unpacking python2.7 (2.7.16-3) …
Selecting previously unselected package libpython2-stdlib:amd64.
Preparing to unpack …/6-libpython2-stdlib_2.7.16-1_amd64.deb …
Unpacking libpython2-stdlib:amd64 (2.7.16-1) …
Selecting previously unselected package libpython-stdlib:amd64.
Preparing to unpack …/7-libpython-stdlib_2.7.16-1_amd64.deb …
Unpacking libpython-stdlib:amd64 (2.7.16-1) …
Setting up libpython2.7-minimal:amd64 (2.7.16-3) …
Setting up python2.7-minimal (2.7.16-3) …
Setting up python2-minimal (2.7.16-1) …
Selecting previously unselected package python2.
(Reading database … 34727 files and directories currently installed.)
Preparing to unpack …/python2_2.7.16-1_amd64.deb …
Unpacking python2 (2.7.16-1) …
Setting up python-minimal (2.7.16-1) …
Selecting previously unselected package python.
(Reading database … 34759 files and directories currently installed.)
Preparing to unpack …/0-python_2.7.16-1_amd64.deb …
Unpacking python (2.7.16-1) …
Selecting previously unselected package libbluetooth3:amd64.
Preparing to unpack …/1-libbluetooth3_5.50-1+b1_amd64.deb …
Unpacking libbluetooth3:amd64 (5.50-1+b1) …
Selecting previously unselected package libmm-glib0:amd64.
Preparing to unpack …/2-libmm-glib0_1.10.4-0.1_amd64.deb …
Unpacking libmm-glib0:amd64 (1.10.4-0.1) …
Selecting previously unselected package libndp0:amd64.
Preparing to unpack …/3-libndp0_1.6-1+b1_amd64.deb …
Unpacking libndp0:amd64 (1.6-1+b1) …
Selecting previously unselected package libnm0:amd64.
Preparing to unpack …/4-libnm0_1.20.0-1_amd64.deb …
Unpacking libnm0:amd64 (1.20.0-1) …
Selecting previously unselected package libteamdctl0:amd64.
Preparing to unpack …/5-libteamdctl0_1.28-1+b1_amd64.deb …
Unpacking libteamdctl0:amd64 (1.28-1+b1) …
Selecting previously unselected package network-manager.
Preparing to unpack …/6-network-manager_1.20.0-1_amd64.deb …
Unpacking network-manager (1.20.0-1) …
Selecting previously unselected package node-normalize.css.
Preparing to unpack …/7-node-normalize.css_8.0.1-3_all.deb …
Unpacking node-normalize.css (8.0.1-3) …
Selecting previously unselected package libntfs-3g883.
Preparing to unpack …/8-libntfs-3g883_1%3a2017.3.23AR.3-3_amd64.deb …
Unpacking libntfs-3g883 (1:2017.3.23AR.3-3) …
Setting up fuse (2.9.9-1) …
dpkg: error processing package fuse (—configure):
installed fuse package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
fuse
E: Sub-process /usr/bin/dpkg returned an error code (1)
info: Trying to set ‘docker.io/restart’ [boolean] to ‘true’
info: Loading answer for ‘docker.io/restart’
info: Trying to set ‘debconf/frontend’ [select] to ‘noninteractive’
info: Loading answer for ‘debconf/frontend’

Reading package lists… Done
Building dependency tree
Reading state information… Done
Calculating upgrade… Done
The following packages were automatically installed and are no longer required:
libbluetooth3 libmm-glib0 libndp0 libnm0 libntfs-3g883 libpython-stdlib libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib libteamdctl0 network-manager node-normalize.css python python-minimal
python2 python2-minimal python2.7 python2.7-minimal
Use ‘sudo apt autoremove’ to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
15 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up fuse (2.9.9-1) …
dpkg: error processing package fuse (—configure):
installed fuse package post-installation script subprocess returned error exit status 1
Setting up libntfs-3g883 (1:2017.3.23AR.3-3) …
Setting up libpython2.7-stdlib:amd64 (2.7.16-3) …
Setting up libteamdctl0:amd64 (1.28-1+b1) …
Setting up libnm0:amd64 (1.20.0-1) …
Setting up libmm-glib0:amd64 (1.10.4-0.1) …
Setting up libbluetooth3:amd64 (5.50-1+b1) …
Setting up libndp0:amd64 (1.6-1+b1) …
Setting up node-normalize.css (8.0.1-3) …
Setting up python2.7 (2.7.16-3) …
Setting up libpython2-stdlib:amd64 (2.7.16-1) …
Setting up network-manager (1.20.0-1) …
Setting up python2 (2.7.16-1) …
Setting up libpython-stdlib:amd64 (2.7.16-1) …
Setting up python (2.7.16-1) …
Processing triggers for libc-bin (2.28-10) …
Processing triggers for systemd (242-4) …
Processing triggers for man-db (2.8.6.1-1) …
Processing triggers for dbus (1.12.16-1) …
Processing triggers for mime-support (3.63) …
Errors were encountered while processing:
fuse
W: —force-yes is deprecated, use one of the options starting with —allow instead.
E: Sub-process /usr/bin/dpkg returned an error code (1)
Setting up fuse (2.9.9-1) …
dpkg: error processing package fuse (—configure):
installed fuse package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
fuse
./update.sh: line 194: npm: command not found
./update.sh: line 195: pip: command not found
./update.sh: line 197: pip: command not found
Reading package lists… Done
Building dependency tree
Reading state information… Done
Package ‘mailutils’ is not installed, so not removed
The following packages were automatically installed and are no longer required:
libbluetooth3 libmm-glib0 libndp0 libnm0 libntfs-3g883 libpython-stdlib libpython2-stdlib libpython2.7-minimal libpython2.7-stdlib libteamdctl0 network-manager node-normalize.css python python-minimal
python2 python2-minimal python2.7 python2.7-minimal
Use ‘sudo apt autoremove’ to remove them.
The following packages will be REMOVED:
exim4-base*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up fuse (2.9.9-1) …
dpkg: error processing package fuse (—configure):
installed fuse package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
fuse
E: Sub-process /usr/bin/dpkg returned an error code (1)
exim4-base set on hold.
mailutils set on hold.

Now replacing T-Pot related config files on host

Ensure some T-Pot defaults with regard to some folders, permissions and configs.

Now pulling latest docker images

This might take a while, please be patient!

./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found
./update.sh: line 171: docker: command not found

If you made changes to tpot.yml please ensure to add them again.

We stored the previous version as backup in /root/.

Some updates may need an import of the latest Kibana objects as well.

Download the latest objects here if they recently changed:

https://raw.githubusercontent.com/dtag-dev-sec/tpotce/master/etc/objects/kibana_export.json.zip

Export and import the objects easily through the Kibana WebUI:

Go to Kibana > Management > Saved Objects > Export / Import

All objects will be overwritten upon import, make sure to run an export first.

Please reboot.

[root@frontuniform:/opt/tpot]# q

Context: Ubuntu 11.10 and libfuse 2.8.4-1.4ubuntu1
Linux 3.0.0-14-generic #23-Ubuntu SMP Mon Nov 21 20:28:43 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

I’m trying to use libfuse. I want to cause fuse_session_loop to exit (from a signal handler or a different thread), but when I call fuse_session_exit nothing happens until the session receives a new request.

fuse_session_exit sets a flag that is read by fuse_session_exited. Debugging into fuse_session_loop it appears to block on fuse_chan_recv, so it doesn’t check fuse_session_exited again until the top of the loop…

int fuse_session_loop(struct fuse_session *se)
{
    int res = 0;
    struct fuse_chan *ch = fuse_session_next_chan(se, NULL);
    size_t bufsize = fuse_chan_bufsize(ch);
    char *buf = (char *) malloc(bufsize);
    if (!buf) {
        fprintf(stderr, "fuse: failed to allocate read buffern");
        return -1;
    }

    while (!fuse_session_exited(se)) {
        struct fuse_chan *tmpch = ch;
        res = fuse_chan_recv(&tmpch, buf, bufsize); <--- BLOCKING
        if (res == -EINTR)
            continue;
        if (res <= 0)
            break;
        fuse_session_process(se, buf, res, tmpch);
    }

    free(buf);
    fuse_session_reset(se);
    return res < 0 ? -1 : 0;
}

fuse_chan_recv calls fuse_kern_chan_receive which blocks on the «read» syscall of the «/dev/fuse» device, so even though the fuse_session_exited flag is set nothing happens yet.

static int fuse_kern_chan_receive(struct fuse_chan **chp, char *buf,
                  size_t size)
{
    struct fuse_chan *ch = *chp;
    int err;
    ssize_t res;
    struct fuse_session *se = fuse_chan_session(ch);
    assert(se != NULL);

restart:
    res = read(fuse_chan_fd(ch), buf, size); <--- BLOCKING
    err = errno;

    if (fuse_session_exited(se))
        return 0;
    if (res == -1) {
        /* ENOENT means the operation was interrupted, it's safe
           to restart */
        if (err == ENOENT)
            goto restart;

        if (err == ENODEV) {
            fuse_session_exit(se);
            return 0;
        }
        /* Errors occuring during normal operation: EINTR (read
           interrupted), EAGAIN (nonblocking I/O), ENODEV (filesystem
           umounted) */
        if (err != EINTR && err != EAGAIN)
            perror("fuse: reading device");
        return -err;
    }
    if ((size_t) res < sizeof(struct fuse_in_header)) {
        fprintf(stderr, "short read on fuse devicen");
        return -EIO;
    }
    return res;
}

This problem seems to effect the hello_ll.c example provided with libfuse as well as my program. It makes me think that perhaps there is some mechanism that is not working that should. Perhaps fuse_session_exit is supposed to be also doing something that interrupts the read call, that for some reason is not working on my system.

Any ideas?

I’m getting fuse errors when trying to install packages with apt-get.
I’ve tried reinstalling it but it didn’t help.

This is output when I try to install something:

Do you want to continue? [Y/n] y
Setting up fuse (2.9.3-15+deb8u2) ...
Creating fuse device...
/run/udev or .udevdb or .udev presence implies active udev.  Aborting MAKEDEV invocation.
chmod: cannot access '/dev/fuse': No such file or directory
dpkg: error processing package fuse (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 fuse
E: Sub-process /usr/bin/dpkg returned an error code (1)

asked May 8, 2016 at 23:12

Juicee's user avatar

Hey its very simple to fix:

mkdir /dev/fuse
chmod 777 /dev/fuse

apt-get install fuse

Stephen Rauch's user avatar

answered Apr 29, 2017 at 19:53

John Adora's user avatar

John AdoraJohn Adora

611 silver badge2 bronze badges

1

This is potentically a duplicate of «E: Sub-process /usr/bin/dpkg returned an error code (1)» when I try and install OpenVPN. What is this?: a package tried to install fuse (probably as a dependency), however the configuration of the package failed since udev did not create /dev/fuse.

You might check the output of $ service udev status to see whether the service is running and $ modinfo fuse to verify that the kernel module exists.

If you are running inside a VM that shares a kernel with the host, chances are your VM is not allowed to use FUSE.

To get rid of the error, apt-get remove fuse.

Hth,
dtk

Community's user avatar

answered Aug 28, 2016 at 14:15

dtk's user avatar

This worked very well for my Pi Model B+ V1.2 running Raspbian GNU/Linux VERSION=8 (jessie).

  • I only had to do:

    mkdir /dev/fuse
    chmod 777 /dev/fuse
    

    since my system already had fuse in it’s latest version

answered Feb 3, 2019 at 20:51

Jeanrocco's user avatar

1

FAQ

Can I use my encrypted ACD/GDrive content with Plex and other dockers?

Yes, that’s exactly the purpose of this container.

Can i haz unlimited space on my unRAID setup?

I think 233 TB is the maximum I’ve seen so far with Amazon Cloud Drive.

How do i create the .rclone.conf file?

docker exec -it Rclone-mount rclone —config=»/config/.rclone.conf» config

I already have a .rclone.conf file from the rclone plugin, can I use it rather than creating a new one?

Sure, there are two ways:

  1. Mount the /config volume so it points to the directory which contains the .rclone.conf file. E.g.: -v «/boot/config/plugins/rclone-beta/»:»/config»:rw
  2. Copy it to: «/mnt/cache/appdata/rclone-mount/config/»

I cannot see my mounted volume/files outside of the container

  1. Make sure you have this in extra parameters (advanced view): —cap-add SYS_ADMIN —device /dev/fuse —security-opt apparmor:unconfine -v /mnt/disks/rclone_volume/:/data:shared
  2. Make sure that this docker container is started before the container you are sharing the volume with.

Can i use the copy/sync features of rclone with this docker?

Use the other docker i made which supports that.

What are the best mount settings for Plex playback / transcoding?

  1. See this post
  2. And this discussion on the official rclone forum
  3. And ajkis wiki on GitHub

I want more verbose logging, so I can see what’s going on

This is not entirely documented yet by rclone, but there is some discussion here.

Summarized, in the RCLONE_MOUNT_OPTIONS variable put:

  • -v flag for information logging
  • Or -vv for alot verbose logging

Why should I specify the /data mount in the Extra Parameters?

Because the unRAID docker GUI does not support the shared mount propagation options, which is required for the rclone FUSE mount to be shared with other containers. I’ve already opened a feature request to have this option available in the GUI.

This option has been added to the GUI by @bonienl and is no longer necessary.

Can I change the volume mapping of the mount from /mnt/disks/rclone_volume/ to another location?

Yes, in the Extra Parameters change the default value of -v /mnt/disks/rclone_volume/:/data:shared to -v <location>:/data:shared


Edited February 9, 2019 by thomast_88

Понравилась статья? Поделить с друзьями:
  • Error exists in required projects eclipse
  • Error exist in the active configuration of project
  • Error exfat file system is not found
  • Error execution phase kubelet start error uploading crisocket timed out waiting for the condition
  • Error expected nested name specifier before system