dls-controls / dev-c7

A container for running the DLS Controls RHEL7 developer environment on a RHEL8 workstation
Apache License 2.0
0 stars 2 forks source link

Error upon starting container - ERROR 102: Tcl command execution failed #97

Closed olliesilvester closed 12 months ago

olliesilvester commented 1 year ago
[qqh35939@ws103 bin]$ ./c7 -pd
dev-c7
Trying to pull ghcr.io/dls-controls/dev-c7:latest...
Getting image source signatures
Copying blob ca73f4efb552 skipped: already exists  
Copying blob 4cd3b329699e skipped: already exists  
Copying blob 548cf2ca3702 skipped: already exists  
Copying blob 9736ae6a26d1 skipped: already exists  
Copying blob 60e2847583a5 skipped: already exists  
Copying blob 2d473b07cdd5 skipped: already exists  
Copying blob f3fe55e60258 skipped: already exists  
Copying blob e3888c4df7fd skipped: already exists  
Copying config 414e5c9b56 done  
Writing manifest to image destination
Storing signatures
414e5c9b5641b806b8ba5642adb38d0fe3c0c135bb8b5ba5243c3c979d9d51f7

Creating new dev-c7 container version latest ...
039c04846d27c26f272320efc8f30d6210306dac026586551ad5fa14cf0f4a52
docker-compose/2.23.0(30):ERROR:102: Tcl command execution failed: if { [ module-info mode load ] } {
    set podman_version [lindex [split [exec podman --version]] 2]
    # Don't try to turn on podman socket if we are on RHEL7 (proxy via old podman)
    if { [lindex [split $podman_version .] 0] < 3 } {
        puts stderr "Warning: System podman version ${podman_version} is <3.0.0. Loading module but will not work on RHEL7."
    } else {
        if { ! [file exists "/run/user/${uid}/podman/podman.sock"] } {
            puts stderr "docker-compose: First time setup on this machine, enabling podman socket"
            exec systemctl --user enable podman.socket
            exec systemctl --user start podman.socket
            exec systemctl --user start podman
        }
        ## WIP Checking that it has worked
        #if {[catch {exec docker-compose ls} err]} {
        #    puts stderr "Error running: $err"
        #}
    }
}
gilesknap commented 1 year ago

Is not clear to me why your error mentions docker compose! Or TCL for that matter.

The first thing I need to ask is are you running this on a DLS Red hat 8 workstation? 2nd did you run the podman setup script supplied by the cloud team? (If not search for podman in confluence to find it)

olliesilvester commented 1 year ago

Yes this is a DLS red hat 8 workstation, and I have run the startup script. I had some issues with it but it seems to have worked eventually (https://jira.diamond.ac.uk/browse/HLA-767)

gilesknap commented 1 year ago

Ok. Can you try podman system reset and report any errors you see.

Then try c7 again

olliesilvester commented 1 year ago
[qqh35939@ws103 hyperion]$ podman system reset
WARNING! This will remove:
        - all containers
        - all pods
        - all images
        - all networks
        - all build cache
        - all machines
        - all volumes
Are you sure you want to continue? [y/N] y
WARN[0015] StopSignal SIGTERM failed to stop container dev-c7 in 10 seconds, resorting to SIGKILL 
 A "/home/qqh35939/.config/containers/storage.conf" config file exists.
Remove this file if you did not modify the configuration.
ERRO[0040] failed to remove runtime root dir /run/user/1221713, since it is the same as XDG_RUNTIME_DIR 
[qqh35939@ws103 hyperion]$ cd ~/bin
[qqh35939@ws103 bin]$ ls
c7
[qqh35939@ws103 bin]$ ./c7 
Trying to pull ghcr.io/dls-controls/dev-c7:latest...
Getting image source signatures
Copying blob ca73f4efb552 done  
Copying blob 4cd3b329699e done  
Copying blob 2d473b07cdd5 done  
Copying blob 9736ae6a26d1 done  
Copying blob 60e2847583a5 done  
Copying blob 548cf2ca3702 done  
Copying blob f3fe55e60258 done  
Copying blob e3888c4df7fd done  
Copying config 414e5c9b56 done  
Writing manifest to image destination
Storing signatures
414e5c9b5641b806b8ba5642adb38d0fe3c0c135bb8b5ba5243c3c979d9d51f7

Creating new dev-c7 container version latest ...
5cb9d9ce09c04c88da26b214b7576a95e3c50a733740f36b9dc4f2e2898c973e
docker-compose/2.23.0(30):ERROR:102: Tcl command execution failed: if { [ module-info mode load ] } {
    set podman_version [lindex [split [exec podman --version]] 2]
    # Don't try to turn on podman socket if we are on RHEL7 (proxy via old podman)
    if { [lindex [split $podman_version .] 0] < 3 } {
        puts stderr "Warning: System podman version ${podman_version} is <3.0.0. Loading module but will not work on RHEL7."
    } else {
        if { ! [file exists "/run/user/${uid}/podman/podman.sock"] } {
            puts stderr "docker-compose: First time setup on this machine, enabling podman socket"
            exec systemctl --user enable podman.socket
            exec systemctl --user start podman.socket
            exec systemctl --user start podman
        }
        ## WIP Checking that it has worked
        #if {[catch {exec docker-compose ls} err]} {
        #    puts stderr "Error running: $err"
        #}
    }
}
gilesknap commented 1 year ago

I'm going to need to take a look at your machine probably.

I'm not back in the office until Thurs.

In the mean time what happens if you run

podman run -it ubuntu​


From: olliesilvester @.> Sent: 14 November 2023 11:38 To: dls-controls/dev-c7 @.> Cc: Knap, Giles (DLSLtd,RAL,LSCI) @.>; Comment @.> Subject: Re: [dls-controls/dev-c7] Error upon starting container - ERROR 102: Tcl command execution failed (Issue #97)

@.*** hyperion]$ podman system reset WARNING! This will remove:

Creating new dev-c7 container version latest ... 5cb9d9ce09c04c88da26b214b7576a95e3c50a733740f36b9dc4f2e2898c973e docker-compose/2.23.0(30):ERROR:102: Tcl command execution failed: if { [ module-info mode load ] } { set podman_version [lindex [split [exec podman --version]] 2]

Don't try to turn on podman socket if we are on RHEL7 (proxy via old podman)

if { [lindex [split $podman_version .] 0] < 3 } {
    puts stderr "Warning: System podman version ${podman_version} is <3.0.0. Loading module but will not work on RHEL7."
} else {
    if { ! [file exists "/run/user/${uid}/podman/podman.sock"] } {
        puts stderr "docker-compose: First time setup on this machine, enabling podman socket"
        exec systemctl --user enable podman.socket
        exec systemctl --user start podman.socket
        exec systemctl --user start podman
    }
    ## WIP Checking that it has worked
    #if {[catch {exec docker-compose ls} err]} {
    #    puts stderr "Error running: $err"
    #}
}

}

— Reply to this email directly, view it on GitHubhttps://github.com/dls-controls/dev-c7/issues/97#issuecomment-1810042895, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAHLRW5YYMWBPVKUJXYQGK3YENJ3PAVCNFSM6AAAAAA7KNYE7SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMJQGA2DEOBZGU. You are receiving this because you commented.Message ID: @.***>

-- This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail. Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd. Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message. Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom

olliesilvester commented 1 year ago

OK, thanks!

That command gives:

[qqh35939@ws103 bin]$ podman run -it ubuntu
Resolving "ubuntu" using unqualified-search registries (/home/qqh35939/.config/containers/registries.conf)
Trying to pull docker.io/library/ubuntu:latest...
Getting image source signatures
Copying blob aece8493d397 done  
Copying config e4c5895818 done  
Writing manifest to image destination
Storing signatures
root@3cfd8bc7f348:/# 
gilesknap commented 1 year ago

That is as expected so podman is working on your workstation.

I've just verified that c7 is working for me as per the instructions here https://dls-controls.github.io/dev-c7/main/tutorials/start.html.

One thing I note about those instructions is that they assume $HOME/bin is in your path. Are you able to verify that:

  1. You are using the latest c7 script from https://raw.githubusercontent.com/dls-controls/dev-c7/main/c7

  2. That you are definitely launching that script (i.e. if you type which c7 it shows the file you downloaded from the above.

I expect I need to come an have a look at your workstation tomorrow as this is probably something specific to your setup.

olliesilvester commented 1 year ago

$HOME/bin wasn't on my path, although I get the same error after adding it. I can verify my script is the latest one and that which c7 points to ~/bin/c7

gilesknap commented 1 year ago

Hi @olliesilvester unfortunately I'm going to be working from home for a few more days because my car is broken.

Let me know what your machine name is and I'll see if I can connect an reproduce the issue.

olliesilvester commented 1 year ago

No problem, I am ws103

gilesknap commented 12 months ago

Sorry for the delay, I'm still stuck at home for this week. Back on Mon next.

I could not reproduce any problems on your ws103 machine.

I did notice that your account loads modules that add docker-compose to the path. Please can you report what happens if you remove "/dls_sw/dasc/tools:/dls_sw/apps/docker-compose/2.23.0/bin:" from your PATH and run c7 again.

olliesilvester commented 12 months ago

Removing this from the path seemed to fix it, thank you!

gilesknap commented 12 months ago

I guess that is not a permanent fix as you might need those things - now we need to track down who provides the modulet that adds it to your path.

olliesilvester commented 12 months ago

It was on my bash rc - I think someone recommended I add it when I first joined diamond but I guess it's outdated now

gilesknap commented 12 months ago

OK great, I figure we can close this issue then. I have used docker compose in the past and I may not have tried launching dev-c7 with it - I don't fully understand the interaction but will look into it again if it becomes an issue for anyone.

olliesilvester commented 12 months ago

Thanks for your help!