Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • lava lava
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 90
    • Issues 90
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 48
    • Merge requests 48
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • lava
  • lavalava
  • Issues
  • #275

Closed
Open
Created May 15, 2019 by Kumar Gala@galakDeveloper

Race between udev waiting APIs & ConnectDevice

On some boards (like FRDM-K64F) as we flash the board it will reset the usb connection which causes the tty device to go away and come back. This has a race:

In the lava_dispatcher if we look cmsis_dap.py, we have code:

def populate(self, parameters):
       …
       if resets_after_flash:
           self.internal_pipeline.add_action(WaitUSBSerialDeviceAction())
       self.internal_pipeline.add_action(ConnectDevice())

We tend to utilize the /dev/serial/by-id/ symlink device paths to have persistent device names. So, in that case there are 2 different events (one for the tty being created, the second event for the symlink existing). Typically these 2 events effectively appear at the same time, however its possible that there's a delay between these 2 events. In that case the ConnectDevice() has the potential to fail.

Edited May 15, 2019 by Kumar Gala
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking