Bug #112781 modified schedule in innodbcluster resources,not work
Submitted: 20 Oct 2023 10:05 Modified: 19 Jan 2024 12:18
Reporter: Bing Ma (OCA) Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Operator Severity:S2 (Serious)
Version:8.1.0 OS:Linux
Assigned to: CPU Architecture:Any

[20 Oct 2023 10:05] Bing Ma
Description:
modified schedule in innodbschdule resources,not work

How to repeat:
create an innodbcluster,set backup schedule. sometimes I changed the schedule,but it not work

backupSchedules:
  - backupProfileName: dump-instance-profile-pvc
    deleteBackupData: false
    enabled: false
    name: schedule-ref
    schedule: 0 0/2 * * *
[20 Oct 2023 10:07] Bing Ma
Traceback (most recent call last):
  File "/usr/lib/mysqlsh/python-packages/kopf/_core/actions/execution.py", line 279, in execute_handler_once
    result = await invoke_handler(
  File "/usr/lib/mysqlsh/python-packages/kopf/_core/actions/execution.py", line 374, in invoke_handler
    result = await invocation.invoke(
  File "/usr/lib/mysqlsh/python-packages/kopf/_core/actions/invocation.py", line 139, in invoke
    await asyncio.shield(future)  # slightly expensive: creates tasks
  File "/usr/lib64/python3.9/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/lib/mysqlsh/python-packages/mysqloperator/controller/innodbcluster/operator_cluster.py", line 498, in on_innodbcluster_field_backup_schedules
    backup_objects.update_schedules(cluster.parsed_spec, old, new, logger)
  File "/usr/lib/mysqlsh/python-packages/mysqloperator/controller/backup/backup_objects.py", line 349, in update_schedules
    diff = compare_schedules(spec, old, new, logger)
  File "/usr/lib/mysqlsh/python-packages/mysqloperator/controller/backup/backup_objects.py", line 323, in compare_schedules
    if old_schedule_obj == new_schedule_obj:
  File "/usr/lib/mysqlsh/python-packages/mysqloperator/controller/backup/backup_api.py", line 169, in __eq__
    self.backupProfile == other.backupProfile and \
  File "/usr/lib/mysqlsh/python-packages/mysqloperator/controller/backup/backup_api.py", line 106, in __eq__
    assert isinstance(other, BackupProfile)
AssertionError
[20 Oct 2023 18:18] MySQL Verification Team
Hi,

I just tried and it worked? Can you give me full steps how to reproduce this problem?

thanks
[20 Oct 2023 22:24] Bing Ma
ic2-schedule-ref-cb-28297338-2t25j   0/1     Completed   0          5m26s
ic2-schedule-ref-cb-28297340-bfzgs   0/1     Completed   0          3m26s
ic2-schedule-ref-cb-28297342-m8psq   0/1     Completed   0          86s
ic2-schedule-ref231020221203-mk25c   0/1     Completed   0          11m
ic2-schedule-ref231020221403-pzgmz   0/1     Completed   0          9m23s
ic2-schedule-ref231020221603-dsgjb   0/1     Completed   0          7m23s
ic2-schedule-ref231020221803-ng6pk   0/1     Completed   0          5m23s
ic2-schedule-ref231020222003-jb7tx   0/1     Completed   0          3m23s
ic2-schedule-ref231020222203-l88sh   0/1     Completed   0          83s

my scedule is:
spec:
  backupProfiles:
  - dumpInstance:
      storage:
        persistentVolumeClaim:
          claimName: myexample-pvc
    name: dump-instance-profile-pvc
  backupSchedules:
  - backupProfileName: dump-instance-profile-pvc
    deleteBackupData: false
    enabled: true
    name: schedule-ref
    schedule: 0 */1 * * *
  baseServerId: 1000
  imagePullPolicy: IfNotPresent
  instances: 3
  router:
    instances: 1
  secretName: ic2-cluster-secret
  serviceAccountName: ic2-sa
  tlsUseSelfSigned: true
  version: 8.1.0
[20 Oct 2023 22:33] Bing Ma
even I have remove the mysql-innodbcluster helm chart, it still backuped every two minutes.the operator not realized the innodbcluster have removed

before:
helm ls
NAME    	NAMESPACE   	REVISION	UPDATED                                	STATUS  	CHART                    	APP VERSION
ic2     	oracle-mysql	1       	2023-10-21 06:09:34.448979009 +0800 CST	deployed	mysql-innodbcluster-2.1.0	8.1.0      
operator	oracle-mysql	1       	2023-10-18 11:29:07.926366425 +0800 CST	deployed	mysql-operator-2.1.0     	8.1.0-2.1.0

remove the ic2
helm ls
NAME    	NAMESPACE   	REVISION	UPDATED                                	STATUS  	CHART               	APP VERSION
operator	oracle-mysql	1       	2023-10-18 11:29:07.926366425 +0800 CST	deployed	mysql-operator-2.1.0	8.1.0-2.1.0

the job
ic2-schedule-ref231020222603-frqbn   0/1     Error       0          6m34s
ic2-schedule-ref231020222603-hhzxq   0/1     Error       0          6m2s
ic2-schedule-ref231020222603-klj5d   0/1     Error       0          6m27s
ic2-schedule-ref231020222603-lv75f   0/1     Error       0          6m21s
ic2-schedule-ref231020222603-mfr7j   0/1     Error       0          6m14s
ic2-schedule-ref231020222603-rql7l   0/1     Error       0          5m55s
ic2-schedule-ref231020222603-vvhhk   0/1     Error       0          6m8s
ic2-schedule-ref231020222803-2h5lf   0/1     Error       0          4m28s
ic2-schedule-ref231020222803-9t8r4   0/1     Error       0          4m22s
ic2-schedule-ref231020222803-f8trh   0/1     Error       0          4m2s
ic2-schedule-ref231020222803-hch9f   0/1     Error       0          4m15s
ic2-schedule-ref231020222803-pkrh8   0/1     Error       0          3m55s
ic2-schedule-ref231020222803-qdbct   0/1     Error       0          4m34s
ic2-schedule-ref231020222803-xjxs8   0/1     Error       0          4m8s
[25 Oct 2023 8:00] MySQL Verification Team
Hi,

Thank you for report
[19 Jan 2024 12:18] Andrey Hristov
Posted by developer:
 
Fixed by the fix for Bug# 35636172