#3863 new defect

builtins.AttributeError: 'FileTransferServer' object has no attribute '_ebClose'

Reported by: exarkun Owned by:
Priority: normal Milestone: undecided
Component: unknown Version: n/a
Keywords: Cc:
Launchpad Bug:

Description

2022-01-21T14:09:01-0500 [SSHChannel session (0) on SSHService b'ssh-connection' on SSHServerTransport,0,127.0.0.1] Unhandled Error
        Traceback (most recent call last):
          File "/nix/store/crqq2kycnbjmfdwy7yp2fp1qiwps7xsd-python3.9-twisted-20.3.0/lib/python3.9/site-packages/twisted/python/context.py", line 122, in callWithContext
            return self.currentContext().callWithContext(ctx, func, *args, **kw)
          File "/nix/store/crqq2kycnbjmfdwy7yp2fp1qiwps7xsd-python3.9-twisted-20.3.0/lib/python3.9/site-packages/twisted/python/context.py", line 85, in callWithContext
            return func(*args,**kw)
          File "/nix/store/crqq2kycnbjmfdwy7yp2fp1qiwps7xsd-python3.9-twisted-20.3.0/lib/python3.9/site-packages/twisted/conch/ssh/session.py", line 112, in dataReceived
            self.client.transport.write(data)
          File "/nix/store/crqq2kycnbjmfdwy7yp2fp1qiwps7xsd-python3.9-twisted-20.3.0/lib/python3.9/site-packages/twisted/conch/ssh/session.py", line 163, in write
            self.proto.dataReceived(data)
        --- <exception caught here> ---
          File "/nix/store/crqq2kycnbjmfdwy7yp2fp1qiwps7xsd-python3.9-twisted-20.3.0/lib/python3.9/site-packages/twisted/conch/ssh/filetransfer.py", line 59, in dataReceived
            f(data)
          File "/nix/store/crqq2kycnbjmfdwy7yp2fp1qiwps7xsd-python3.9-twisted-20.3.0/lib/python3.9/site-packages/twisted/conch/ssh/filetransfer.py", line 190, in packet_CLOSE
            self._ebClose(failure.Failure(KeyError()), requestId)
        builtins.AttributeError: 'FileTransferServer' object has no attribute '_ebClose'

Change History (3)

comment:1 Changed at 2022-01-21T19:33:11Z by exarkun

This looks a lot like a bug in Twisted Conch. This self._ebClose call was added with the first commit of filetransfer.py in 2003. There was no _ebClose method in that commit nor has one ever been added since.

However, this codepath also seems to be some kind of error path in the sftp server implementation. This is what happens if a client tries to close a handle that is neither a file nor a directory?

I'm not quite sure what the client is trying to do in this case (it's quite easily reproducible though).

comment:4 Changed at 2022-01-28T18:02:00Z by exarkun

The Twisted change is merged and almost released - https://mail.python.org/archives/list/twisted@python.org/thread/LJU54CY4S5GIOE46B7XCBVXONRV4BHBX/

I suppose Tahoe can bump its dependency on Twisted when that release is finalized and then call this resolved.

Note: See TracTickets for help on using tickets.