internal error: operation not supported on socket

All your general support questions for OpenZFS on OS X.

internal error: operation not supported on socket

Postby Sharko » Fri Nov 08, 2019 8:45 pm

So, I have an pool that consists of 2 x 4TB mirror on an external OWC dual Elite enclosure, connected via eSATA at the moment. The pool is called, not surprisingly, ELITE. The only dataset under ELITE is ENCRYPTED, which as you might guess is encrypted. Today I tried to add a new dataset under ENCRYPTED called MISC.

Code: Select all
Admins-Mac-Pro:~ adminkurt$ sudo sh
Password:
sh-3.2# zpool import -f ELITE
sh-3.2# zfs mount -l ELITE/ENCRYPTED
Enter passphrase for 'ELITE/ENCRYPTED':
sh-3.2#  zfs create ELITE/ENCRYPTED/MISC
internal error: Operation not supported on socket
Abort trap: 6
sh-3.2# zfs get readonly ELITE/ENCRYPTED
NAME             PROPERTY  VALUE   SOURCE
ELITE/ENCRYPTED  readonly  off     local
sh-3.2#


Am I tripping over something simple here? I have other datasets under ENCRYPTED that work just fine, and have been on the receiving end of zfs send operations for months (all done manually). You can see I checked to see if ENCRYPTED was readonly (and it's not).

Relevant system facts: running zfs 1.9.2 under Mojave.

Other weirdness: in the Finder, when I click on the ENCRYPTED volume in the sidebar it shows me my other working datasets (SHOME_BACKUP, JON_BACKUP, etc). However, when I try to drill down further into those datasets by clicking on them in main window of the finder they show as though they are empty. I have to explicitly do a 'zfs mount ELITE/ENCRYPTED/SHOME_BACKUP' command to see the contents of those child datasets under ELITE/ENCRYPTED. It seems like I have run into this before, but the search feature of the web site seems to be broken right now and I can't find my post about it and the responses - help ilovezfs?!
Sharko
 
Posts: 109
Joined: Thu May 12, 2016 12:19 pm

Re: internal error: operation not supported on socket

Postby Sharko » Sat Nov 09, 2019 7:01 am

Edit: forgot to mention a few more relevant facts... this pool was created under zfs 1.7.2 (I think, it was one of the early ones that supported encryption), and I’ve never done a zpool upgrade on it. The problem is reproducible on this pool if I export and RE-import; haven’t tried rebooting yet.
Sharko
 
Posts: 109
Joined: Thu May 12, 2016 12:19 pm

Re: internal error: operation not supported on socket

Postby lundman » Sun Nov 10, 2019 6:44 pm

That is odd, first thought was that you can not create a non-encrypted (plain) dataset under an encrypted one, but you didn't specify encryption, so it is supposed to inherit the value in that case.

Have you tried explicitly setting it when you create the dataset, ie, zfs create -o encryption=on ELITE/ENCRYPTED/MISC ?

I didn't have any issues with 1.9.3
Code: Select all
# zfs create -o encryption=on -o keyformat=passphrase tank/enc
Enter passphrase:
Re-enter passphrase:
# zfs create tank/enc/lower
# zfs list
NAME             USED  AVAIL  REFER  MOUNTPOINT
tank            4.77M  18.9G  1.20M  /Volumes/tank
tank/enc        1.02M  18.9G   906K  /Volumes/tank/enc
tank/enc/lower   135K  18.9G   135K  /Volumes/tank/enc/lower

# zpool export tank
# zpool import -l tank
Enter passphrase for 'tank/enc':
1 / 1 keys successfully loaded

# zfs create tank/enc/lowerer
User avatar
lundman
 
Posts: 707
Joined: Thu Mar 06, 2014 2:05 pm
Location: Tokyo, Japan

Re: internal error: operation not supported on socket

Postby roemer » Sat Feb 22, 2020 5:52 am

Sharko wrote: Today I tried to add a new dataset under ENCRYPTED called MISC.
Code: Select all
Admins-Mac-Pro:~ adminkurt$ sudo sh
Password:
sh-3.2# zpool import -f ELITE
sh-3.2# zfs mount -l ELITE/ENCRYPTED
Enter passphrase for 'ELITE/ENCRYPTED':
sh-3.2#  zfs create ELITE/ENCRYPTED/MISC
internal error: Operation not supported on socket
Abort trap: 6



Has this been resolved? I just ran into exactly the same problem / internal error with O3X 1.9.3-1...
(also tried to create a new dataset under an encrypted dataset)
roemer
 
Posts: 46
Joined: Sat Mar 15, 2014 2:32 pm

Re: internal error: operation not supported on socket

Postby lundman » Sat Feb 22, 2020 2:22 pm

Clearly displaying the wrong error message at very least.
User avatar
lundman
 
Posts: 707
Joined: Thu Mar 06, 2014 2:05 pm
Location: Tokyo, Japan

Re: internal error: operation not supported on socket

Postby roemer » Sat Feb 22, 2020 4:36 pm

The problem is that currently I cannot create any dataset anymore on the affected ZFS pool:

Code: Select all
bash-3.2$  zfs create zdata/test
internal error: Operation not supported on socket
Abort trap: 6


That's on a freshly booted machine with the encrypted pool just imported and encryption key loaded.
I spotted this first when I tried to create a nested dataset, but given above's error, I am not sure whether this was just a symptome or the cause.
The last operations I did on this pool was creating snapshots and cloning some snapshots.
Both is still working, but not creating a new dataset...

Any ideas?
roemer
 
Posts: 46
Joined: Sat Mar 15, 2014 2:32 pm

Re: internal error: operation not supported on socket

Postby lundman » Sun Feb 23, 2020 4:43 pm

Still having issues replicating:

Code: Select all
# ./cmd.sh zfs create -o encryption=on -o keyformat=passphrase tank/enc
Enter passphrase:
Re-enter passphrase:

# ./cmd.sh zpool export -a
# ./cmd.sh zpool import tank

# ./cmd.sh zfs mount -l tank/enc
Enter passphrase for 'tank/enc':
# ./cmd.sh zfs create tank/enc/misc

# ./cmd.sh zpool version
zfs-1.9.3-11-g0f55bdd691
zfs-kmod-1.9.3-11-g0f55bdd691


Unfortunately ENOTSUP is such a generic error, it is hard to guess where it comes from. Check your binary versions match using the zpool version command, and
perhaps dtruss zfs create to see where the error comes from.
User avatar
lundman
 
Posts: 707
Joined: Thu Mar 06, 2014 2:05 pm
Location: Tokyo, Japan

Re: internal error: operation not supported on socket

Postby roemer » Mon Feb 24, 2020 1:27 am

Yes, binary version match.
I tried to run zfs create with dtruss, but I am not a dtrace expert, nor did I have this week much time to debug into this.
The following is the dtruss output just before the error message:
Code: Select all
Shell1:  zpool version
zfs-1.9.3-3-ge94a41240
zfs-kmod-1.9.3-3-ge94a41240
Shell1:  zfs create zdata/test
internal error: Operation not supported on socket
Abort trap: 6

Shell2:  sudo dtruss -a -n zfs
 ...
 1610/0x8db9:     11633      16     14 open_nocancel("/usr/share/locale/en_AU.UTF-8/LC_MESSAGES/LC_MESSAGES\0", 0x0, 0xFFFFFFFFFFFFFFF4)       = 3 0
 1610/0x8db9:     11635       2      1 fstat64(0x3, 0x7FFEEC870010, 0x0)       = 0 0
 1610/0x8db9:     11636       2      1 read_nocancel(0x3, "^[yY].*\n^[nN].*\n@\004(\0", 0x10)       = 16 0
 1610/0x8db9:     11638       2      1 close_nocancel(0x3)       = 0 0
 1610/0x8db9:     11681      12     11 stat64("/dev/zfs\0", 0x7FFEEC8704C8, 0x0)       = 0 0
 1610/0x8db9:     11717      25     24 open("/dev/zfs\0", 0x2, 0xFFFFFFFFFFFFFFE0)       = 3 0
 1610/0x8db9:     11731      10      8 open_nocancel("/etc/exports\0", 0x0, 0x1B6)       = -1 Err#2
 1610/0x8db9:     11764      20     19 open("/dev/zfs\0", 0x2, 0x0)       = 4 0
 1610/0x8db9:     12091     203    201 ioctl(0x3, 0xFFFFFFFFD1C05A12, 0x7FFEEC86EBB0)       = 0 0
 1610/0x8db9:     12363     265    263 ioctl(0x3, 0xFFFFFFFFD1C05A12, 0x7FFEEC86D4A0)       = 0 0
 1610/0x8db9:     12604     172    170 ioctl(0x3, 0xFFFFFFFFD1C05A05, 0x7FFEEC86C210)       = 0 0
 1610/0x8db9:     12726      75     73 ioctl(0x3, 0xFFFFFFFFD1C05A12, 0x7FFEEC86EB90)       = 0 0
 1610/0x8db9:     12853     124    123 ioctl(0x3, 0xFFFFFFFFD1C05A05, 0x7FFEEC86EB60)       = 0 0
 1610/0x8db9:     13120     233    231 ioctl(0x3, 0xFFFFFFFFD1C05A12, 0x7FFEEC86E730)       = 0 0
 1610/0x8db9:     13194      52     50 ioctl(0x3, 0xFFFFFFFFD1C05A27, 0x7FFEEC86E6B8)       = 0 0
 1610/0x8db9:     13556     316    314 ioctl(0x4, 0xD1C05A17, 0x7FFEEC86EB70)       = 0 0
 1610/0x8db9:     13598       8      6 write_nocancel(0x2, "internal error: Operation not supported on socket\n\0", 0x32)       = 50 0
 1610/0x8db9:     13602       2      0 sigprocmask(0x3, 0x7FFEEC86FC4C, 0x0)       = 0x0 0
 1610/0x8db9:     13603       2      0 bsdthread_ctl(0x1000, 0x1, 0x0)       = 0 0
 1610/0x8db9:     13604       2      0 __pthread_sigmask(0x3, 0x7FFEEC86FC40, 0x0)       = 0 0
 1610/0x8db9:     13606       3      1 __pthread_kill(0x307, 0x6, 0x0)       = 0 0

The actual output is much longer; just before this excerpt, it did accesses the locale config (LC_TYPE, LC_MESSAGES, LC_NUMERIC, etc).
Not sure whether this means that I am too late, and above is the trace of printing the actual error message, or indeed correctly just after program initialisation...
roemer
 
Posts: 46
Joined: Sat Mar 15, 2014 2:32 pm

Re: internal error: operation not supported on socket

Postby lundman » Mon Feb 24, 2020 5:05 pm

No that's about right from userland's POV. Since ioctl() calls will succeed and the real returncode is stuffed inside the reply.

dtrace -n 'zfs*:return { printf("%d", arg1); }' would probably show one of the calls returning Err#45. But it'd also be quite verbose.
User avatar
lundman
 
Posts: 707
Joined: Thu Mar 06, 2014 2:05 pm
Location: Tokyo, Japan

Re: internal error: operation not supported on socket

Postby roemer » Tue Feb 25, 2020 3:04 am

I ran your dtrace command, and concatenated its output to the log of yesterday's dtruss command.
I am not sure that we can see here what you are looking for:
bash-3.2$ grep ioctl ZFScreate_AbortTrap6_error-20200225.txt
1610/0x8db9: 7258 1702 1699 ioctl(0x3, 0x80086804, 0x7FFEEC870D90) = 0 0
1610/0x8db9: 8345 2 1 ioctl(0x2, 0x4004667A, 0x7FFEEC86DA54) = 0 0
1610/0x8db9: 12091 203 201 ioctl(0x3, 0xFFFFFFFFD1C05A12, 0x7FFEEC86EBB0) = 0 0
1610/0x8db9: 12363 265 263 ioctl(0x3, 0xFFFFFFFFD1C05A12, 0x7FFEEC86D4A0) = 0 0
1610/0x8db9: 12604 172 170 ioctl(0x3, 0xFFFFFFFFD1C05A05, 0x7FFEEC86C210) = 0 0
1610/0x8db9: 12726 75 73 ioctl(0x3, 0xFFFFFFFFD1C05A12, 0x7FFEEC86EB90) = 0 0
1610/0x8db9: 12853 124 123 ioctl(0x3, 0xFFFFFFFFD1C05A05, 0x7FFEEC86EB60) = 0 0
1610/0x8db9: 13120 233 231 ioctl(0x3, 0xFFFFFFFFD1C05A12, 0x7FFEEC86E730) = 0 0
1610/0x8db9: 13194 52 50 ioctl(0x3, 0xFFFFFFFFD1C05A27, 0x7FFEEC86E6B8) = 0 0
1610/0x8db9: 13556 316 314 ioctl(0x4, 0xD1C05A17, 0x7FFEEC86EB70) = 0 0
ioctl 10
4 272191 zfsdev_ioctl:return 4294966267
4 272191 zfsdev_ioctl:return 4294966267
4 272191 zfsdev_ioctl:return 0
4 272191 zfsdev_ioctl:return 0
4 272191 zfsdev_ioctl:return 0
4 272191 zfsdev_ioctl:return 0
4 272191 zfsdev_ioctl:return 0
4 272191 zfsdev_ioctl:return 0
4 272191 zfsdev_ioctl:return 0
6 272191 zfsdev_ioctl:return 0
roemer
 
Posts: 46
Joined: Sat Mar 15, 2014 2:32 pm

Next

Return to General Help

Who is online

Users browsing this forum: No registered users and 4 guests