The above analysis is true for SSH, but, I realise it's different for the PTY passed in by lxc exec.
So my analysis is true maybe, but I am going to move this SSH fix over to Bug #1667016 so this bug can stay open for the general PTY/buffering issue.
There is a gap in my explanation of: It's not clear to me why this doesn't also happen outside of a container.
Of note I found that the error I get initially suggests it couldn't resolve the path of the FD, which seems probably to be /dev/pts:
[ 9119.221342] audit: type=1400 audit(1666766810.741:452): apparmor="DENIED" operation="getattr" info="Failed name lookup - disconnected path" error=-13 namespace="root//lxd-juju-5062b7-2-lxd-3_<var-snap-lxd-common-lxd>" profile="/usr/sbin/tcpdump" name="apparmor/.null" pid=257511 comm="tcpdump" requested_mask="r" denied_mask="r" fsuid=1000108 ouid=0
However the same fix makes this go away. Is apparmor or this error message failing to identify the path for some reason because it has no permission to stat it in that apparmor context or something? Also is "/dev r" a faulty permission?
It's notable that after I reload the apparmor profile, and sometimes randomly, the current terminal session has this issue go away - it seems it can resolve the path for a while. e.g. if i add and then remove the consoles abstraction, it suddenly works inside that session. But if I logout/login it breaks again.
The above analysis is true for SSH, but, I realise it's different for the PTY passed in by lxc exec.
So my analysis is true maybe, but I am going to move this SSH fix over to Bug #1667016 so this bug can stay open for the general PTY/buffering issue.
There is a gap in my explanation of: It's not clear to me why this doesn't also happen outside of a container.
Of note I found that the error I get initially suggests it couldn't resolve the path of the FD, which seems probably to be /dev/pts: 0.741:452) : apparmor="DENIED" operation="getattr" info="Failed name lookup - disconnected path" error=-13 namespace= "root// lxd-juju- 5062b7- 2-lxd-3_ <var-snap- lxd-common- lxd>" profile= "/usr/sbin/ tcpdump" name="apparmor/ .null" pid=257511 comm="tcpdump" requested_mask="r" denied_mask="r" fsuid=1000108 ouid=0
[ 9119.221342] audit: type=1400 audit(166676681
However the same fix makes this go away. Is apparmor or this error message failing to identify the path for some reason because it has no permission to stat it in that apparmor context or something? Also is "/dev r" a faulty permission?
It's notable that after I reload the apparmor profile, and sometimes randomly, the current terminal session has this issue go away - it seems it can resolve the path for a while. e.g. if i add and then remove the consoles abstraction, it suddenly works inside that session. But if I logout/login it breaks again.
I'm a bit lost here :)