Project

General

Profile

Actions

Bug #75142

closed

rbd_support suddenly rejecting previously working inputs

Added by John Mulligan 4 months ago. Updated 4 months ago.

Status:
Rejected
Priority:
High
Assignee:
Target version:
-
% Done:

0%

Source:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Tags (freeform):
Merge Commit:
Fixed In:
Released In:
Upkeep Timestamp:

Description

The go-ceph project tests across a number of ceph versions, including main branch. Very recently (02/24-ish) the ceph main build (and only the main build) is failing with the following error:

=== RUN   TestMirrorSnapshotScheduleAddRemove/startTime
    msschedule_test.go:216: 
            Error Trace:    /go/src/github.com/ceph/go-ceph/rbd/admin/msschedule_test.go:216
            Error:          Received unexpected error:
                            rados: ret=-22, Invalid argument: "Invalid start time 12:00:00: invalid literal for int() with base 10: b'12:0'" 
            Test:           TestMirrorSnapshotScheduleAddRemove/startTime
    msschedule_test.go:218: 
            Error Trace:    /go/src/github.com/ceph/go-ceph/rbd/admin/msschedule_test.go:218
            Error:          Received unexpected error:
                            rados: ret=-22, Invalid argument: "Invalid start time 12:00:00: invalid literal for int() with base 10: b'12:0'" 
            Test:           TestMirrorSnapshotScheduleAddRemove/startTime

This seems to be a regression caused by https://github.com/ceph/ceph/pull/66735

Actions #1

Updated by Ilya Dryomov 4 months ago

  • Status changed from New to Rejected
  • Assignee set to Ilya Dryomov

Hi John,

This is by design. "Start time" handling was broken beyond repair since day 1 and we decided to make a backwards-incompatible change to fix it. The timestamp needs to have a date portion now, supplying just the time portion won't do.

Note the pending release note:

RBD: Fixed incorrect behavior of the "start-time" argument for mirror snapshot and trash purge schedules, where it previously offset the schedule anchor instead of defining it. The argument now requires an ISO 8601 date-time. The `schedule ls` output displays the start time in UTC, including the date and time in the format "%Y-%m-%d %H:%M:00". The `schedule status` output now displays the next schedule time in UTC.

Actions #2

Updated by John Mulligan 4 months ago

I guess that, since you say it's backwards-incompatible, you're aware then that working code that was using this command is now broken. It's a bit annoying to have to have multiple different implementations for different versions. Is there at least some way to "anchor" the decision to use one form of input or another that's not just based on version?

Actions #3

Updated by Ilya Dryomov 4 months ago

John Mulligan wrote in #note-2:

I guess that, since you say it's backwards-incompatible, you're aware then that working code that was using this command is now broken.

It was working from the perspective of the argument getting accepted by the command, but not from the perspective of what happened next ;) The behavior was very confusing and the change for the command to now insist on the date portion of the timestamp being passed is part of untangling that.

It's a bit annoying to have to have multiple different implementations for different versions. Is there at least some way to "anchor" the decision to use one form of input or another that's not just based on version?

You should be able to change go-ceph tests to pass yyyy-mm-ddThh:mm:00 format timestamp universally across versions.

Actions #4

Updated by John Mulligan 4 months ago

You should be able to change go-ceph tests to pass yyyy-mm-ddThh:mm:00 format timestamp universally across versions.

Thank you very much!

Actions

Also available in: Atom PDF