labgrid-project / labgrid-project/labgrid

Place cannot be acquired because one of its resources is acquired by itself

Open
#748 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug help wanted
Dominant language
Python
Stars
528
Forks
278
Avg merge
2d 19h
Merged PRs (30d)
4

Description

Hi,

From time to time I meet this issue: that I can't acquire a place because one of its resources is already acquired by the place itself. I don't know in what situation it happens. Has anyone met the same issue?

Below is the error message I get and how the place resources look like (Matching resource '2' is acquired by the place):

(venv) testlabgrid@client-hostname:~/labgrid-tests/labgrid-config$ labgrid-client -p RO--MX8_evk--1 acquire
Matching resource '2' (exporter-hostname/RO--MX8_evk--1-console-2/NetworkSerialPort/USBSerialPort) already acquired by place 'RO--MX8_evk--1'
labgrid-client: error: failed to acquire place RO--MX8_evk--1
(venv) testlabgrid@client-hostname:~/labgrid-tests/labgrid-config$ labgrid-client -p RO--MX8_evk--1 show
Place 'RO--MX8_evk--1':
  matches:
    exporter-hostname/RO--MX8_evk--1/*
    exporter-hostname/RO--MX8_evk--1-console-0/NetworkSerialPort -> 0
    exporter-hostname/RO--MX8_evk--1-console-1/NetworkSerialPort -> 1
    exporter-hostname/RO--MX8_evk--1-console-2/NetworkSerialPort -> 2
    exporter-hostname/RO--MX8_evk--1-console-3/NetworkSerialPort -> 3
  acquired: None
  acquired resources:
  created: 2021-02-03 14:50:36.272348
  changed: 2021-03-10 00:18:44.230550
Matching resource 'NetworkPowerPort' (exporter-hostname/RO--MX8_evk--1/NetworkPowerPort/NetworkPowerPort):
  {'acquired': None,
   'avail': True,
   'cls': 'NetworkPowerPort',
   'params': {'host': '<pdu-service-IP>:8085/192.168.99.104',
              'index': 7,
              'model': 'simplehttp'}}
Matching resource 'NetworkService' (exporter-hostname/RO--MX8_evk--1/NetworkService/NetworkService):
  {'acquired': None,
   'avail': True,
   'cls': 'NetworkService',
   'params': {'address': '<pdu-service-IP>',
              'extra': {'proxy': 'exporter-hostname', 'proxy_required': False},
              'username': 'bamboo'}}
Matching resource 'USBResetPort' (exporter-hostname/RO--MX8_evk--1/NetworkUSBResetPort/USBResetPort):
  {'acquired': None,
   'avail': True,
   'cls': 'NetworkUSBResetPort',
   'params': {'board': 'imx8dxlevk',
              'busnum': 1,
              'devnum': 90,
              'extra': {'proxy': 'exporter-hostname', 'proxy_required': False},
              'host': 'exporter-hostname.domain.net',
              'model_id': 24593,
              'path': '1-1.1.2',
              'vendor_id': 1027}}
Matching resource 'USBSerialPort' (exporter-hostname/RO--MX8_evk--1/NetworkSerialPort/USBSerialPort):
  {'acquired': None,
   'avail': True,
   'cls': 'NetworkSerialPort',
   'params': {'extra': {'path': '/dev/ttyUSB63',
                        'proxy': 'exporter-hostname',
                        'proxy_required': False},
              'host': 'exporter-hostname.domain.net',
              'port': None,
              'speed': 115200}}
Matching resource 'UniversalUpdateUtility' (exporter-hostname/RO--MX8_evk--1/NetworkUniversalUpdateUtility/UniversalUpdateUtility):
  {'acquired': None,
   'avail': False,
   'cls': 'NetworkUniversalUpdateUtility',
   'params': {'busnum': None,
              'devnum': None,
              'extra': {'proxy': 'exporter-hostname', 'proxy_required': False},
              'host': 'exporter-hostname.domain.net',
              'model_id': None,
              'path': None,
              'vendor_id': None}}
Matching resource '0' (exporter-hostname/RO--MX8_evk--1-console-0/NetworkSerialPort/USBSerialPort):
  {'acquired': None,
   'avail': True,
   'cls': 'NetworkSerialPort',
   'params': {'extra': {'path': '/dev/ttyUSB52',
                        'proxy': 'exporter-hostname',
                        'proxy_required': False},
              'host': 'exporter-hostname.domain.net',
              'port': None,
              'speed': 115200}}
Matching resource '1' (exporter-hostname/RO--MX8_evk--1-console-1/NetworkSerialPort/USBSerialPort):
  {'acquired': None,
   'avail': True,
   'cls': 'NetworkSerialPort',
   'params': {'extra': {'path': '/dev/ttyUSB53',
                        'proxy': 'exporter-hostname',
                        'proxy_required': False},
              'host': 'exporter-hostname.domain.net',
              'port': None,
              'speed': 115200}}
Matching resource '2' (exporter-hostname/RO--MX8_evk--1-console-2/NetworkSerialPort/USBSerialPort):
  {'acquired': 'RO--MX8_evk--1',
   'avail': True,
   'cls': 'NetworkSerialPort',
   'params': {'extra': {'path': '/dev/ttyUSB63',
                        'proxy': 'exporter-hostname',
                        'proxy_required': False},
              'host': 'exporter-hostname.domain.net',
              'port': 42093,
              'speed': 115200}}
Matching resource '3' (exporter-hostname/RO--MX8_evk--1-console-3/NetworkSerialPort/USBSerialPort):
  {'acquired': None,
   'avail': True,
   'cls': 'NetworkSerialPort',
   'params': {'extra': {'path': '/dev/ttyUSB64',
                        'proxy': 'exporter-hostname',
                        'proxy_required': False},
              'host': 'exporter-hostname.domain.net',
              'port': None,
              'speed': 115200}}

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the self-acquisition using the documented labgrid-client acquire and show commands for the affected place, comparing the matching resource and acquired fields. Trace the resource-acquisition path to determine how a resource can be reported as acquired by its own place; done means the cause is identified and the erroneous failure is prevented or covered by a regression test.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli, embedded-iot
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.