samoklava
samoklava copied to clipboard
XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":601282374" after 11 requests (8 known processed) with 0 events remaining.
i'm constantly hitting his error whenever I try to use the github action to autobuild the kicad file. I'm using the yaml file generated from https://ergogen.cache.works/ . As a test I tried using the sweep-like(minimal) yaml file as well as my own design and it all ends up with the below issue.
Please let me know if the stack below is useful
Run ./.github/actions/export-dsn
/usr/bin/docker run --name soundmonsterkicadautomationscriptslatest_9a3df0 --label 72882e --workdir /github/workspace --rm -e INPUT_PCB_FILE -e INPUT_DSN_FILE -e HOME -e GITHUB_JOB -e GITHUB_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_REPOSITORY_OWNER -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RETENTION_DAYS -e GITHUB_RUN_ATTEMPT -e GITHUB_ACTOR -e GITHUB_WORKFLOW -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GITHUB_EVENT_NAME -e GITHUB_SERVER_URL -e GITHUB_API_URL -e GITHUB_GRAPHQL_URL -e GITHUB_REF_NAME -e GITHUB_REF_PROTECTED -e GITHUB_REF_TYPE -e GITHUB_WORKSPACE -e GITHUB_ACTION -e GITHUB_EVENT_PATH -e GITHUB_ACTION_REPOSITORY -e GITHUB_ACTION_REF -e GITHUB_PATH -e GITHUB_ENV -e GITHUB_STEP_SUMMARY -e RUNNER_OS -e RUNNER_ARCH -e RUNNER_NAME -e RUNNER_TOOL_CACHE -e RUNNER_TEMP -e RUNNER_WORKSPACE -e ACTIONS_RUNTIME_URL -e ACTIONS_RUNTIME_TOKEN -e ACTIONS_CACHE_URL -e GITHUB_ACTIONS=true -e CI=true --entrypoint "/bin/sh" -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" -v "/home/runner/work/_temp/_runner_file_commands":"/github/file_commands" -v "/home/runner/work/samoklava/samoklava":"/github/workspace" soundmonster/kicad-automation-scripts:latest "-c" "mkdir -p $HOME/.config/kicad ;
cp /root/.config/kicad/* $HOME/.config/kicad ;
/usr/lib/python2.7/dist-packages/kicad-automation/pcbnew_automation/export_dsn.py output/pcbs/board.kicad_pcb output/pcbs/board.dsn
"
Unable to find image 'soundmonster/kicad-automation-scripts:latest' locally
latest: Pulling from soundmonster/kicad-automation-scripts
124c757242f8: Pulling fs layer
9d866f8bde2a: Pulling fs layer
fa3f2f277e67: Pulling fs layer
398d32b153e8: Pulling fs layer
afde35469481: Pulling fs layer
84c890a4c945: Pulling fs layer
c2d270e31686: Pulling fs layer
44b62cfa4727: Pulling fs layer
ee39436fdbef: Pulling fs layer
cd840ecddeb7: Pulling fs layer
ae65f875717a: Pulling fs layer
398d32b153e8: Waiting
afde35469481: Waiting
84c890a4c945: Waiting
c2d270e31686: Waiting
44b62cfa4727: Waiting
ee39436fdbef: Waiting
cd840ecddeb7: Waiting
ae65f875717a: Waiting
9d866f8bde2a: Verifying Checksum
9d866f8bde2a: Download complete
124c757242f8: Verifying Checksum
124c757242f8: Download complete
fa3f2f277e67: Verifying Checksum
fa3f2f277e67: Download complete
398d32b153e8: Verifying Checksum
398d32b153e8: Download complete
84c890a4c945: Download complete
afde35469481: Verifying Checksum
afde35469481: Download complete
44b62cfa4727: Verifying Checksum
44b62cfa4727: Download complete
cd840ecddeb7: Verifying Checksum
cd840ecddeb7: Download complete
124c757242f8: Pull complete
ae65f875717a: Verifying Checksum
ae65f875717a: Download complete
9d866f8bde2a: Pull complete
fa3f2f277e67: Pull complete
398d32b153e8: Pull complete
afde35469481: Pull complete
84c890a4c945: Pull complete
c2d270e31686: Verifying Checksum
c2d270e31686: Download complete
ee39436fdbef: Verifying Checksum
ee39436fdbef: Download complete
c2d270e31686: Pull complete
44b62cfa4727: Pull complete
ee39436fdbef: Pull complete
cd840ecddeb7: Pull complete
ae65f875717a: Pull complete
Digest: sha256:6aef0d06c62b0e9859b1f3c869f329bf7b156fc360e0076c687827ca62e57d27
Status: Downloaded newer image for soundmonster/kicad-automation-scripts:latest
INFO:util.ui_automation:Waiting for pcbnew window...
XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":601282374"
after 11 requests (8 known processed) with 0 events remaining.
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/kicad-automation/pcbnew_automation/export_dsn.py", line 100, in <module>
export_result = run_export(args.kicad_pcb_file, args.output_file, args.record)
File "/usr/lib/python2.7/dist-packages/kicad-automation/pcbnew_automation/export_dsn.py", line 64, in run_export
window = wait_for_window('pcbnew', 'Pcbnew', 10, False)
File "/usr/lib/python2.7/dist-packages/kicad-automation/util/ui_automation.py", line 99, in wait_for_window
raise RuntimeError('Timed out waiting for %s window' % name)
RuntimeError: Timed out waiting for pcbnew window
I get this too. ~~This Stackoverflow answer might indicate where the root cause is, but that indicates that the docker image contains software that handles its sockets wrong. But since I don't know what that image actually does, I get no further.~~
I know think that it is the ergogen
error in #22 that is causing this error.
Which is a pity...
I tried to run the same docker command locally but it also failed in exactly the same way, which confirms my suspition about the image. I guess we'll have to wait for @soundmonster to have a look at this.
I get this too. ~This Stackoverflow answer might indicate where the root cause is, but that indicates that the docker image contains software that handles its sockets wrong. But since I don't know what that image actually does, I get no further.~
A fix is running the build script without the X11 server running, either on a tty or (probably) wayland.
I know think that it is the
ergogen
error in #22 that is causing this error.Which is a pity...
Probably not an issue, soundmonter uses a specific branch of his ergogen fork, that he implements that feature. If you try to run the yaml file in ergogen ui or the default ergogen, it will fail to export a pcb, but on ergogen ui you can set it to update on change and just use it as a preview for the drawings.
The Makefile and also the GH workflow make (strong) assumptions about how things are named. Probably both have to be adjusted so they work together. The GH workflow assumes:
- the main PCB with routes and footprints exists and is called
board
- there is a top and bottom plates also output as PCBs (without footprints or traces, just nicely cut FR4) that are called
top_plate
andbottom_plate
.
I guess a good starting point would be if you could point me to your fork so I could have a look. Possible solutions could be one or several of the following:
- rename the main PCB to
board
in Ergogen YAML - make sure to use my fork of Ergogen in
package.json
if you're generating top/bottom plates as PCBs - rename the files in the GH workflow to suit what's in your YAML
- remove top/bottom plate generation from the workflow if you don't need them at all, or plan to use another Ergogen fork.