cannot lock /dev/ttyusb_port1: Resource temporarily unavailable

Simon Glass sjg at chromium.org
Sun Oct 8 22:16:53 CEST 2023


Hi,

Since an update to Ubuntu 2022.04 on my lab machine I cannot get
boards to connect:

Revision 7d1e5aacdb44bdc2139197a60d8c97c9062d5064, board rpi3

Checking revision 7d1e5aacdb44bdc2139197a60d8c97c9062d5064
/vid/software/devel/ubtest
tbot starting ...
├─Parameters:
│     rev        = '7d1e5aacdb44bdc2139197a60d8c97c9062d5064'
│     clean      = False
├─Calling uboot_build_and_flash ...
│   ├─Calling uboot_build ...
│   │   ├─Calling uboot_checkout ...
│   │   │   ├─Builder: rpi3
│   │   │   └─Done. (6.016s)
│   │   ├─Configuring build ...
│   │   ├─Calling uboot_make ...
│   │   │   └─Done. (10.188s)
│   │   └─Done. (18.444s)
│   ├─Calling uboot_flash ...
│   │   ├─Calling copy ...
│   │   │   └─Done. (0.004s)
│   │   └─Done. (0.646s)
│   └─Done. (19.390s)
├─────────────────────────────────────────
└─SUCCESS (19.486s)
tbot starting ...
├─Calling interactive_board ...
│   ├─POWERON (rpi3)
│   ├─Entering interactive shell (CTRL+D to exit) ...

FATAL: cannot lock /dev/ttyusb_port1: Resource temporarily unavailable

(after it hangs forever here, I press ctrl-D)

logout
│   ├─POWEROFF (rpi3)
│   ├─Exiting poweroff
│   └─Fail. (77.542s)
├─Warning: Found dangling <class 'rpi3.Rpi3'> instance in this context
├─Warning: Teardown went wrong!  A <class 'rpi3.Rpi3'> instance is still alive.
│ Please report this to https://github.com/rahix/tbot/issues!
├─Exception:
│   Traceback (most recent call last):
│     File "/home/sglass/.local/lib/python3.10/site-packages/tbot/main.py",
line 345, in main
│       func(**params)
│     File "/home/sglass/.local/lib/python3.10/site-packages/tbot/decorators.py",
line 62, in wrapped
│       return tc(*args, **kwargs)
│     File "/home/sglass/.local/lib/python3.10/site-packages/tbot/tc/callable.py",
line 43, in interactive_board
│       with tbot.ctx.request(tbot.role.Board) as b:
│     File "/usr/lib/python3.10/contextlib.py", line 153, in __exit__
│       self.gen.throw(typ, value, traceback)
│     File "/home/sglass/.local/lib/python3.10/site-packages/tbot/context.py",
line 359, in request
│       with instance.request(exclusive, self._keep_alive) as m:
│     File "/usr/lib/python3.10/contextlib.py", line 153, in __exit__
│       self.gen.throw(typ, value, traceback)
│     File "/home/sglass/.local/lib/python3.10/site-packages/tbot/context.py",
line 94, in request
│       self.teardown()
│     File "/home/sglass/.local/lib/python3.10/site-packages/tbot/context.py",
line 65, in teardown
│       self._cx.close()
│     File "/usr/lib/python3.10/contextlib.py", line 584, in close
│       self.__exit__(None, None, None)
│     File "/usr/lib/python3.10/contextlib.py", line 576, in __exit__
│       raise exc_details[1]
│     File "/usr/lib/python3.10/contextlib.py", line 561, in __exit__
│       if cb(*exc_details):
│     File "/usr/lib/python3.10/contextlib.py", line 142, in __exit__
│       next(self.gen)
│     File "/home/sglass/.local/lib/python3.10/site-packages/tbot/machine/connector/common.py",
line 126, in from_context
│       with contextlib.ExitStack() as cx:
│     File "/usr/lib/python3.10/contextlib.py", line 576, in __exit__
│       raise exc_details[1]
│     File "/usr/lib/python3.10/contextlib.py", line 153, in __exit__
│       self.gen.throw(typ, value, traceback)
│     File "/home/sglass/.local/lib/python3.10/site-packages/tbot/context.py",
line 379, in request
│       raise e from None
│     File "/home/sglass/.local/lib/python3.10/site-packages/tbot/context.py",
line 366, in request
│       yield m
│     File "/usr/lib/python3.10/contextlib.py", line 561, in __exit__
│       if cb(*exc_details):
│     File "/home/sglass/.local/lib/python3.10/site-packages/tbot/machine/machine.py",
line 186, in __exit__
│       self._cx.__exit__(*args)
│     File "/usr/lib/python3.10/contextlib.py", line 576, in __exit__
│       raise exc_details[1]
│     File "/usr/lib/python3.10/contextlib.py", line 561, in __exit__
│       if cb(*exc_details):
│     File "/usr/lib/python3.10/contextlib.py", line 142, in __exit__
│       next(self.gen)
│     File "/home/sglass/.local/lib/python3.10/site-packages/tbot/machine/connector/common.py",
line 133, in _connect
│       with self.host.clone() as cloned, self.connect(cloned) as ch:
│     File "/home/sglass/.local/lib/python3.10/site-packages/tbot/machine/channel/channel.py",
line 562, in __exit__
│       self.close()
│     File "/home/sglass/.local/lib/python3.10/site-packages/tbot/machine/channel/channel.py",
line 540, in close
│       self._c.close()
│     File "/home/sglass/.local/lib/python3.10/site-packages/tbot/machine/channel/paramiko.py",
line 58, in close
│       raise channel.ChannelClosedException()
│   tbot.machine.channel.channel.ChannelClosedException
├─────────────────────────────────────────
└─FAILURE (77.579s)


If I then connect again, it works, mostly. Has something changed in
paramiko? Any clues?

Regards,
Simon


More information about the tbot mailing list