Commit bf74780
committed
fix(backups): always reset the connectivity flag after a replica backup
A replica backup disables external connectivity by writing the unit peer
databag "connectivity" flag to "off". The flag was only reset to "on"
when `not self.charm.is_primary` still held after the long-running backup
run, so a replica→primary failover mid-backup — or any exception or
interruption in the backup run — left the flag stuck "off". Because the
flag lives in the unit peer databag it survives restarts and upgrades,
leaving pg_hba rejecting peer/replica connections indefinitely (the
cluster can no longer talk to itself).
Latch the disabled-connectivity decision before the backup run and reset
it in a finally block, so the reset runs regardless of role changes or
exceptions. Also recover deployments already stuck with a stale "off" by
resetting it in _on_start and _on_config_changed, guarded by the
cluster-wide is_creating_backup signal so a genuinely in-progress backup
is not un-hidden mid-run.
Signed-off-by: Marcelo Henrique Neppel <marcelo.neppel@canonical.com>1 parent 9b17fd3 commit bf74780
3 files changed
Lines changed: 117 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
985 | 985 | | |
986 | 986 | | |
987 | 987 | | |
| 988 | + | |
988 | 989 | | |
989 | 990 | | |
990 | 991 | | |
991 | 992 | | |
| 993 | + | |
992 | 994 | | |
993 | 995 | | |
994 | 996 | | |
995 | 997 | | |
996 | 998 | | |
997 | 999 | | |
998 | | - | |
999 | | - | |
1000 | | - | |
1001 | | - | |
1002 | | - | |
1003 | | - | |
| 1000 | + | |
| 1001 | + | |
| 1002 | + | |
| 1003 | + | |
| 1004 | + | |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
| 1009 | + | |
1004 | 1010 | | |
1005 | 1011 | | |
1006 | 1012 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1008 | 1008 | | |
1009 | 1009 | | |
1010 | 1010 | | |
| 1011 | + | |
| 1012 | + | |
| 1013 | + | |
| 1014 | + | |
| 1015 | + | |
| 1016 | + | |
| 1017 | + | |
| 1018 | + | |
| 1019 | + | |
| 1020 | + | |
| 1021 | + | |
| 1022 | + | |
| 1023 | + | |
| 1024 | + | |
1011 | 1025 | | |
1012 | 1026 | | |
1013 | 1027 | | |
| |||
1233 | 1247 | | |
1234 | 1248 | | |
1235 | 1249 | | |
| 1250 | + | |
| 1251 | + | |
| 1252 | + | |
1236 | 1253 | | |
1237 | 1254 | | |
1238 | 1255 | | |
| |||
1363 | 1380 | | |
1364 | 1381 | | |
1365 | 1382 | | |
| 1383 | + | |
| 1384 | + | |
| 1385 | + | |
| 1386 | + | |
1366 | 1387 | | |
1367 | 1388 | | |
1368 | 1389 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
640 | 640 | | |
641 | 641 | | |
642 | 642 | | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
643 | 727 | | |
644 | 728 | | |
645 | 729 | | |
| |||
0 commit comments