Install command refuses a running Home when the time locale is not English (strptime on ps lstart)

オープン
#517 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
73/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
bash, linux, python, rust
領域
backend, cli

調査の方向性

Start with the runtime cleanup code in install.sh around line 601, where ps -o lstart= output is parsed by the embedded Python. Check how the two process start-time reads are compared and how Python's locale affects strptime. Add the suggested regression test using a non-English LC_TIME; done when cleanup handles that locale and the installer tests pass.

索引モデルが issue の本文から書いたものです。

説明

Problem

The install command refuses to update a Home whose Runtime is running when the computer's time format is not English:

[4/5] Install
  ... Stopping verified Runtime processes for this installation so the new version can be installed...
Runtime cleanup stopped: time data 'Mon Nov 2 12:06:28 2026' does not match format '%a %b %d %H:%M:%S %Y'
Error: Close this installation's Runtime and retry; its existing files were preserved

Seen 2 Nov 2026 on a Jetson (Ubuntu 22.04) whose system time locale is es_CO.UTF-8, installing 2.0.0 over a running 2.0.0 Home. Nothing was changed.

Cause

install.sh (2.0.0, line ~601) reads each Runtime's start time with ps -o lstart= under LC_ALL=C (English day and month names), then parses it with time.strptime(..., "%a %b %d %H:%M:%S %Y"). Python's strptime matches %a/%b against the process's own LC_TIME names, so on a Spanish (or any non-English) time locale the English names never match.

Workaround

Stop Home first (Ctrl+C in its terminal), or run the installer with the C locale:

curl -fsSL https://elastos.elacitylabs.com/install.sh | LC_ALL=C bash

Checked: the second form installed and moved that Jetson Home to the stable channel.

Fix

Compare the start time as the raw lstart string (both reads come from ps under LC_ALL=C), or run the embedded Python with LC_ALL=C and set locale.setlocale(locale.LC_TIME, "C") before parsing. Add a test that runs the cleanup with LC_TIME=es_CO.UTF-8 (or any non-English locale available on the runner).

主要言語
Rust
スター
6
フォーク
2
平均マージ
1日 3時間
マージ済み PR(30日)
42

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

elastos/elastos-runtime のほかの issue

elastos/elastos-runtime の issue をすべて見る

似ている issue

Rust の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。