Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

started unity_support_test check test without waiting for the system to be stable during WB/CB cycles. #1631

Open
1 task
seankingyang opened this issue Dec 3, 2024 · 2 comments
Assignees
Labels
bug Something isn't working

Comments

@seankingyang
Copy link
Contributor

seankingyang commented Dec 3, 2024

Bug Description

In debian checkbox, the checkbox-ng service will be start when network.targer is triggerred.
It will run the check before the gnome session is ready.
We should run the check after the user space service/ target is run and finish with status.
We can add the systemd-analysis until this cmd have the ourput, then we can run the check.

checkbox will resume the session at the Dec 03 00:11:04.

Dec 03 00:11:04 ubuntu systemd[1]: Started Checkbox Remote Service.
Dec 03 00:11:04 ubuntu sudo[1119]:     root : PWD=/ ; USER=root ; COMMAND=/usr/bin/true
Dec 03 00:11:04 ubuntu sudo[1119]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=0)
Dec 03 00:11:04 ubuntu sudo[1119]: pam_unix(sudo:session): session closed for user root
Dec 03 00:11:04 ubuntu sudo[1131]:     root : PWD=/ ; USER=root ; COMMAND=/usr/bin/true
Dec 03 00:11:04 ubuntu sudo[1131]: pam_unix(sudo:session): session opened for user root(uid=0) by (uid=0)
Dec 03 00:11:04 ubuntu sudo[1131]: pam_unix(sudo:session): session closed for user root
Dec 03 00:11:04 ubuntu checkbox-ng.service[913]: Config: daemon section name is deprecated. Use agent instead.
Dec 03 00:11:04 ubuntu checkbox-ng.service[913]: Resuming session: 'session_title-2024-12-02T07.07.50'
Dec 03 00:11:04 ubuntu checkbox-ng.service[913]: Skipped file: /usr/share/checkbox-provider-base/units/camera/README.rst
Dec 03 00:11:05 ubuntu checkbox-ng.service[913]: Skipped file: /usr/share/locale/aa/LC_MESSAGES/xdg-user-dirs.mo
Dec 03 00:11:05 ubuntu checkbox-ng.service[913]: Skipped file: /usr/share/locale/ab/LC_MESSAGES/iso_3166-1.mo

DISPLAY varialbe will be set at Dec 03 00:11:13

Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2088]: dbus-update-activation-environment: setting DISPLAY=:0
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2088]: dbus-update-activation-environment: setting XAUTHORITY=/run/user/1001/gdm/Xauthority
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2092]: /etc/X11/Xsession.d/30x11-common_xresources: line 16: has_option: command not found
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2095]: localuser:ubuntu being added to access control list
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2104]: /etc/X11/Xsession.d/75dbus_dbus-launch: line 9: has_option: command not found
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2106]: dbus-update-activation-environment: setting GTK_MODULES=gail:atk-bridge
Dec 03 00:11:13 ubuntu ModemManager[1010]: <info>  [device /sys/devices/pci0000:00/0000:00:02.3/0000:02:00.0] creating modem with plugin 'generic' and '3' po>
Dec 03 00:11:13 ubuntu kernel: mtk_t7xx 0000:02:00.0: Packet drop on channel 0x1004, port not found
Dec 03 00:11:13 ubuntu kernel: mtk_t7xx 0000:02:00.0: Packet drop on channel 0x1012, port not found
Dec 03 00:11:13 ubuntu ModemManager[1010]: <info>  [base-manager] modem for device '/sys/devices/pci0000:00/0000:00:02.3/0000:02:00.0' successfully created
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2114]: dbus-update-activation-environment: setting QT_ACCESSIBILITY=1
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2116]: /etc/X11/Xsession.d/90x11-common_ssh-agent: line 9: has_option: command not found
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting SHELL=/bin/bash
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting SESSION_MANAGER=local/ubuntu:@/tmp/.ICE-unix/1182,unix/u>
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting QT_ACCESSIBILITY=1
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting SSH_AGENT_LAUNCHER=gnome-keyring
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting XDG_MENU_PREFIX=gnome-
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting GNOME_DESKTOP_SESSION_ID=this-is-deprecated
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting SSH_AUTH_SOCK=
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting XMODIFIERS=@im=ibus
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting DESKTOP_SESSION=ubuntu
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting GTK_MODULES=gail:atk-bridge
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting PWD=/home/ubuntu
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting XDG_SESSION_DESKTOP=ubuntu
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting LOGNAME=ubuntu
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting XDG_SESSION_TYPE=x11
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting GPG_AGENT_INFO=/run/user/1001/gnupg/S.gpg-agent:0:1
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting SYSTEMD_EXEC_PID=1182
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting XAUTHORITY=/run/user/1001/gdm/Xauthority
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting IM_CONFIG_CHECK_ENV=1
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting WINDOWPATH=2
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting HOME=/home/ubuntu
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting USERNAME=ubuntu
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting IM_CONFIG_PHASE=1
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting LANG=en_US.UTF-8
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting XDG_CURRENT_DESKTOP=ubuntu:GNOME
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting XDG_SESSION_CLASS=user
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting USER=ubuntu
Dec 03 00:11:13 ubuntu /usr/libexec/gdm-x-session[2121]: dbus-update-activation-environment: setting DISPLAY=:0

It is the timmining issue.

Please check the attachment for the detail.

journal.log

Cert-blocker Test Case

  • cert-blocker

To Reproduce

  1. Install checkbox debian version
  2. checkbox-cli run com.canonical.certification::stress-warmboot-coldboot-automated

Expected Result

The reboot check script should wait the system ready (all system service /target is run and finish with the return status).

Actual Result

The reboot check script didn't wait the system ready (all system service /target is run and finish with the return status).
It will easy cause the race condition.

Environment

  • Checkbox debian 4.2.0.dev160

Relevant log output

No response

Additional context

No response

@seankingyang seankingyang added the bug Something isn't working label Dec 3, 2024
Copy link

Thank you for reporting us your feedback!

The internal ticket has been created: https://warthogs.atlassian.net/browse/CHECKBOX-1687.

This message was autogenerated

@tomli380576 tomli380576 self-assigned this Dec 3, 2024
@tomli380576
Copy link
Contributor

tomli380576 commented Dec 11, 2024

Validated that if systemd-analyze was called during reboot, it will say that the system hasn't finished booting. This can be done with this systemd service

[Unit]
Description=Check systemd-analyze
Wants=network.target

[Service]
ExecStart=python3 check_systemd.py
SyslogIdentifier=py_check_systemd.service
Restart=always
RestartSec=1
TimeoutStopSec=30
Type=simple
OOMPolicy=continue

[Install]
WantedBy=multi-user.target

where the check_systemd.py just repeatedly calls systemd-analyze (change the file path as necessary)

import subprocess as sp
import time

max_ct = 5000
count = 0
while True:
    ret = sp.run(
        ["systemd-analyze"],
        stdout=sp.PIPE,
        stderr=sp.PIPE,
        universal_newlines=True,
    )
    print(f"return value is {ret.returncode}")
    print(f"stdout is {ret.stdout}")
    print(f"stderr is {ret.stderr}")
    count += 1
    if count >= max_ct:
        exit(0)
    time.sleep(0.5)

So yes we should be able to rely on this to see if the system has finished booting.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants