Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package conmon for openSUSE:Factory checked 
in at 2026-02-26 18:50:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/conmon (Old)
 and      /work/SRC/openSUSE:Factory/.conmon.new.29461 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "conmon"

Thu Feb 26 18:50:32 2026 rev:40 rq:1334707 version:2.2.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/conmon/conmon.changes    2026-02-02 
14:55:36.707576979 +0100
+++ /work/SRC/openSUSE:Factory/.conmon.new.29461/conmon.changes 2026-02-26 
18:51:12.339907884 +0100
@@ -1,0 +2,15 @@
+Fri Feb 20 11:35:25 UTC 2026 - Madhankumar Chellamuthu 
<[email protected]>
+
+- Update to version 2.2.1:
+  * Release v2.2.1
+  * Fix EAGAIN busy-loop in drain_stdio()
+  * Add CRI-O critest
+  * Fix test for reverted F-sequence behavior
+  * Revert PR #592
+  * Revert PR #629
+  * Skip test if RUNTIME_BINARY is not runc
+  * Fix k8s-file log format for terminating F-sequence
+  * tests: Ensure necessary dependencies are available
+  * Release v2.2.0
+
+-------------------------------------------------------------------

Old:
----
  conmon-2.2.0.tar.xz

New:
----
  conmon-2.2.1.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ conmon.spec ++++++
--- /var/tmp/diff_new_pack.9sRzfm/_old  2026-02-26 18:51:14.592001801 +0100
+++ /var/tmp/diff_new_pack.9sRzfm/_new  2026-02-26 18:51:14.652004303 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           conmon
-Version:        2.2.0
+Version:        2.2.1
 Release:        0
 Summary:        An OCI container runtime monitor
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.9sRzfm/_old  2026-02-26 18:51:15.012019318 +0100
+++ /var/tmp/diff_new_pack.9sRzfm/_new  2026-02-26 18:51:15.032020151 +0100
@@ -4,7 +4,7 @@
 <param name="scm">git</param>
 <param name="versionformat">@PARENT_TAG@</param>
 <param name="versionrewrite-pattern">[v]?([^\+]+)(.*)</param>
-<param name="revision">v2.2.0</param>
+<param name="revision">v2.2.1</param>
 <param name="changesgenerate">enable</param>
 </service>
 <service name="recompress" mode="manual">

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.9sRzfm/_old  2026-02-26 18:51:15.140024655 +0100
+++ /var/tmp/diff_new_pack.9sRzfm/_new  2026-02-26 18:51:15.188026657 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/containers/conmon</param>
-              <param 
name="changesrevision">ff908cce92cf89167b6b97ed240e91a6b147acc1</param></service></servicedata>
+              <param 
name="changesrevision">c8cc2c4db27531bd4e084ce7857f73cd21ee639d</param></service></servicedata>
 (No newline at EOF)
 

++++++ conmon-2.2.0.tar.xz -> conmon-2.2.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.2.0/.github/workflows/integration.yml 
new/conmon-2.2.1/.github/workflows/integration.yml
--- old/conmon-2.2.0/.github/workflows/integration.yml  2026-01-12 
11:08:40.000000000 +0100
+++ new/conmon-2.2.1/.github/workflows/integration.yml  2026-02-12 
17:58:22.000000000 +0100
@@ -28,6 +28,7 @@
     strategy:
       matrix:
         go-version: [stable, oldstable]
+        critest: [0, 1]
     steps:
       - uses: actions/checkout@v6
       - uses: actions/setup-go@v6
@@ -39,13 +40,13 @@
           sudo apt-get update
           sudo apt-get install -y bats
       - run: sudo hack/github-actions-setup
-      - name: Run CRI-O integration tests
+      - name: Run CRI-O integration tests (critest=${{ matrix.critest }})
         run: |
           CRIO_DIR=$(sudo go env GOPATH)/src/github.com/cri-o/cri-o
           sudo make -C "$CRIO_DIR" all test-binaries
           # skip seccomp tests because they have permission denied issues in a 
container and accept signed image as they don't use conmon
           sudo rm -f "$CRIO_DIR"/test/seccomp*.bats 
"$CRIO_DIR"/test/image.bats "$CRIO_DIR"/test/policy.bats
-          sudo sh -c "cd $CRIO_DIR; ./test/test_runner.sh"
+          sudo sh -c "cd $CRIO_DIR; RUN_CRITEST=${{ matrix.critest }} 
./test/test_runner.sh"
         env:
           JOBS: '2'
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.2.0/VERSION new/conmon-2.2.1/VERSION
--- old/conmon-2.2.0/VERSION    2026-01-12 11:08:40.000000000 +0100
+++ new/conmon-2.2.1/VERSION    2026-02-12 17:58:22.000000000 +0100
@@ -1 +1 @@
-2.2.0
+2.2.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.2.0/rpm/conmon.spec 
new/conmon-2.2.1/rpm/conmon.spec
--- old/conmon-2.2.0/rpm/conmon.spec    2026-01-12 11:08:40.000000000 +0100
+++ new/conmon-2.2.1/rpm/conmon.spec    2026-02-12 17:58:22.000000000 +0100
@@ -19,7 +19,7 @@
 %else
 Epoch: 2
 %endif
-Version: 2.2.0
+Version: 2.2.1
 License: Apache-2.0
 Release: %autorelease
 Summary: OCI container runtime monitor
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.2.0/src/ctr_logging.c 
new/conmon-2.2.1/src/ctr_logging.c
--- old/conmon-2.2.0/src/ctr_logging.c  2026-01-12 11:08:40.000000000 +0100
+++ new/conmon-2.2.1/src/ctr_logging.c  2026-02-12 17:58:22.000000000 +0100
@@ -481,19 +481,13 @@
  * The CRI requires us to write logs with a (timestamp, stream, line) format
  * for every newline-separated line. write_k8s_log writes said format for every
  * line in buf, and will partially write the final line of the log if buf is
- * not terminated by a newline. A 0 buflen argument forces any buffered partial
- * line to be finalized with an F-sequence.
+ * not terminated by a newline.
  */
 static int write_k8s_log(stdpipe_t pipe, const char *buf, ssize_t buflen)
 {
-       static bool stdout_has_partial = false;
-       static bool stderr_has_partial = false;
-
        writev_buffer_t bufv = {0};
        int64_t bytes_to_be_written = 0;
 
-       bool *has_partial = (pipe == STDOUT_PIPE) ? &stdout_has_partial : 
&stderr_has_partial;
-
        /*
         * Use the same timestamp for every line of the log in this buffer.
         * There is no practical difference in the output since write(2) is
@@ -502,32 +496,6 @@
        char tsbuf[TSBUFLEN];
        set_k8s_timestamp(tsbuf, sizeof tsbuf, stdpipe_name(pipe));
 
-       /* If buflen is 0, this is a drain operation. Generate terminating 
F-sequence if needed. */
-       if (buflen == 0 && *has_partial) {
-               /* Generate terminating F-sequence for previous partial line */
-               bool timestamp_written = false;
-               bool f_sequence_written = false;
-
-               if (writev_buffer_append_segment(k8s_log_fd, &bufv, tsbuf, 
TSBUFLEN - 1) >= 0) {
-                       timestamp_written = true;
-                       if (writev_buffer_append_segment(k8s_log_fd, &bufv, 
"F\n", 2) >= 0) {
-                               f_sequence_written = true;
-                       }
-               }
-
-               if (timestamp_written && f_sequence_written) {
-                       k8s_bytes_written += TSBUFLEN - 1 + 2;
-                       k8s_total_bytes_written += TSBUFLEN - 1 + 2;
-               } else {
-                       if (!timestamp_written) {
-                               nwarn("failed to write timestamp for 
terminating F-sequence");
-                       } else {
-                               nwarn("failed to write terminating F-sequence");
-                       }
-               }
-               *has_partial = false;
-       }
-
        ptrdiff_t line_len = 0;
        while (buflen > 0) {
                bool partial = get_line_len(&line_len, buf, buflen);
@@ -591,9 +559,6 @@
 
                k8s_bytes_written += bytes_to_be_written;
                k8s_total_bytes_written += bytes_to_be_written;
-
-               /* Track partial state for this pipe */
-               *has_partial = partial;
        next:
                /* Update the head of the buffer remaining to output. */
                buf += line_len;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.2.0/src/ctr_stdio.c 
new/conmon-2.2.1/src/ctr_stdio.c
--- old/conmon-2.2.0/src/ctr_stdio.c    2026-01-12 11:08:40.000000000 +0100
+++ new/conmon-2.2.1/src/ctr_stdio.c    2026-02-12 17:58:22.000000000 +0100
@@ -130,8 +130,8 @@
                return false;
        } else if (num_read < 0) {
                if (errno == EAGAIN || errno == EWOULDBLOCK) {
-                       // Non-blocking mode - no data available, return 
gracefully
-                       return true;
+                       // Non-blocking mode - no data available, stop draining
+                       return false;
                }
                /* Ignore EIO if fd is a tty, since this can happen when the 
tty is closed
                   while we are reading from it. */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.2.0/test/02-ctr-logs.bats 
new/conmon-2.2.1/test/02-ctr-logs.bats
--- old/conmon-2.2.0/test/02-ctr-logs.bats      2026-01-12 11:08:40.000000000 
+0100
+++ new/conmon-2.2.1/test/02-ctr-logs.bats      2026-02-12 17:58:22.000000000 
+0100
@@ -171,5 +171,4 @@
     assert_file_exists "$LOG_PATH"
     run cat "$LOG_PATH"
     assert "${output}" =~ "stdout P"
-    assert "${output}" =~ "stdout F"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.2.0/test/04-runtime.bats 
new/conmon-2.2.1/test/04-runtime.bats
--- old/conmon-2.2.0/test/04-runtime.bats       2026-01-12 11:08:40.000000000 
+0100
+++ new/conmon-2.2.1/test/04-runtime.bats       2026-02-12 17:58:22.000000000 
+0100
@@ -92,7 +92,10 @@
     assert "${output}" =~ "\"pid\": $CONTAINER_PID"
 }
 
-@test "runtime: runtime error with _OCI_SYNCPIPE defined" {
+@test "runtime: runc error with _OCI_SYNCPIPE defined" {
+    if [[ $(basename "$RUNTIME_BINARY") != "runc" ]]; then
+        skip "test requires runc"
+    fi
     # This trailing " results in wrong config.json. We expect the runtime
     # failure.
     setup_container_env '"'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.2.0/test/09-partial-log-test.bats 
new/conmon-2.2.1/test/09-partial-log-test.bats
--- old/conmon-2.2.0/test/09-partial-log-test.bats      2026-01-12 
11:08:40.000000000 +0100
+++ new/conmon-2.2.1/test/09-partial-log-test.bats      1970-01-01 
01:00:00.000000000 +0100
@@ -1,140 +0,0 @@
-#!/usr/bin/env bats
-
-load test_helper
-
-setup() {
-    check_conmon_binary
-    check_runtime_binary
-    setup_container_env
-}
-
-teardown() {
-    cleanup_test_env
-}
-
-@test "partial log: container with printf (no newline) generates F-sequence" {
-    # Modify config to run printf instead of echo
-    jq '.process.args = ["/usr/bin/printf", "hello world"]' 
"$BUNDLE_PATH/config.json" > "$BUNDLE_PATH/config.json.tmp"
-    mv "$BUNDLE_PATH/config.json.tmp" "$BUNDLE_PATH/config.json"
-
-    # Run conmon
-    timeout 30s "$CONMON_BINARY" \
-        --cid "$CTR_ID" \
-        --cuuid "$CTR_ID" \
-        --runtime "$RUNTIME_BINARY" \
-        --log-path "k8s-file:$LOG_PATH" \
-        --bundle "$BUNDLE_PATH" \
-        --socket-dir-path "$SOCKET_PATH" \
-        --log-level debug \
-        --container-pidfile "$PID_FILE" \
-        --conmon-pidfile "$CONMON_PID_FILE" &
-
-    local conmon_pid=$!
-    sleep 2
-
-    if kill -0 $conmon_pid 2>/dev/null; then
-        kill $conmon_pid 2>/dev/null || true
-        wait $conmon_pid 2>/dev/null || true
-    fi
-
-    # Verify log file exists
-    [ -f "$LOG_PATH" ]
-
-    local log_content
-    log_content=$(cat "$LOG_PATH")
-
-    # Test environment may not support container execution
-    # If logs are empty, skip the functional test but verify the 
implementation exists
-    if [ -z "$log_content" ]; then
-        echo "Log is empty - container runtime not available in test 
environment"
-        echo "Skipping functional test, verifying implementation exists in 
source code"
-
-        # Verify the fix is present in source code
-        grep -q "If buflen is 0, this is a drain operation" 
"$PWD/src/ctr_logging.c" || {
-            echo "Missing drain operation code"
-            return 1
-        }
-        grep -q "stdout_has_partial" "$PWD/src/ctr_logging.c" || {
-            echo "Missing stdout_has_partial tracking"
-            return 1
-        }
-        grep -q "stderr_has_partial" "$PWD/src/ctr_logging.c" || {
-            echo "Missing stderr_has_partial tracking"
-            return 1
-        }
-        grep -q "Generate terminating F-sequence" "$PWD/src/ctr_logging.c" || {
-            echo "Missing F-sequence generation code"
-            return 1
-        }
-
-        skip "Container runtime not available for functional testing"
-    else
-        echo "=== Actual log content ==="
-        echo "$log_content"
-        echo "=== End log ==="
-
-        # Test for actual F-sequence functionality
-        # Should have partial line followed by F-sequence
-        echo "$log_content" | grep -q "stdout P hello world" || {
-            echo "Expected partial line not found"
-            return 1
-        }
-
-        echo "$log_content" | grep -q "stdout F$" || {
-            echo "Expected F-sequence not found"
-            return 1
-        }
-    fi
-}
-
-@test "partial log: container with echo (with newline) does NOT generate 
standalone F-sequence" {
-    # Default config already uses echo which outputs newline
-
-    # Run conmon
-    timeout 30s "$CONMON_BINARY" \
-        --cid "$CTR_ID" \
-        --cuuid "$CTR_ID" \
-        --runtime "$RUNTIME_BINARY" \
-        --log-path "k8s-file:$LOG_PATH" \
-        --bundle "$BUNDLE_PATH" \
-        --socket-dir-path "$SOCKET_PATH" \
-        --log-level debug \
-        --container-pidfile "$PID_FILE" \
-        --conmon-pidfile "$CONMON_PID_FILE" &
-
-    local conmon_pid=$!
-    sleep 2
-
-    if kill -0 $conmon_pid 2>/dev/null; then
-        kill $conmon_pid 2>/dev/null || true
-        wait $conmon_pid 2>/dev/null || true
-    fi
-
-    # Check if log file exists and has content
-    if [ ! -f "$LOG_PATH" ] || [ ! -s "$LOG_PATH" ]; then
-        echo "Log file missing or empty - container runtime not available"
-        echo "Skipping functional test, verifying implementation exists"
-
-        # Verify the fix implementation exists
-        grep -q "If buflen is 0, this is a drain operation" 
"$PWD/src/ctr_logging.c" || {
-            echo "Missing drain operation code"
-            return 1
-        }
-
-        skip "Container runtime not available for functional testing"
-    fi
-
-    local log_content
-    log_content=$(cat "$LOG_PATH")
-
-    echo "=== Log content ==="
-    echo "$log_content"
-    echo "=== End log ==="
-
-    # For normal output with newlines, should NOT have standalone F-sequences
-    # (F-sequences should only appear for partial line termination)
-    ! echo "$log_content" | grep -q "stdout F$" || {
-        echo "Unexpected standalone F-sequence found for normal output"
-        return 1
-    }
-}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conmon-2.2.0/test/run-tests.sh 
new/conmon-2.2.1/test/run-tests.sh
--- old/conmon-2.2.0/test/run-tests.sh  2026-01-12 11:08:40.000000000 +0100
+++ new/conmon-2.2.1/test/run-tests.sh  2026-02-12 17:58:22.000000000 +0100
@@ -61,10 +61,14 @@
 check_dependencies() {
     local missing_deps=()
 
-    if ! command -v bats >/dev/null 2>&1; then
+    if ! command -v bats >& /dev/null; then
         missing_deps+=("bats")
     fi
 
+    if ! command -v socat >& /dev/null; then
+        missing_deps+=("socat")
+    fi
+
     if [[ ! -x "$CONMON_BINARY" ]]; then
         missing_deps+=("conmon binary at $CONMON_BINARY")
     fi
@@ -213,4 +217,4 @@
 # Only run main if script is executed directly
 if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
     main "$@"
-fi
\ No newline at end of file
+fi

Reply via email to