root@pve13.in-berlin.de ~ # journalctl --since "2026-08-07 19:00:00" --until "2026-08-07 22:00:00" | grep -iE "watchdog|quorum|corosync.*(lost|retransmit|token)|pve-ha"
Aug 07 20:15:57 pve13 corosync[2352]: [TOTEM ] Token has not been received in 2737 ms
Aug 07 20:16:07 pve13 corosync[2352]: [QUORUM] Sync members[1]: 3
Aug 07 20:16:07 pve13 corosync[2352]: [QUORUM] Sync left[2]: 1 2
Aug 07 20:16:11 pve13 corosync[2352]: [QUORUM] Sync members[1]: 3
Aug 07 20:16:11 pve13 corosync[2352]: [QUORUM] Sync left[2]: 1 2
Aug 07 20:16:11 pve13 corosync[2352]: [QUORUM] This node is within the non-primary component and will NOT provide any services.
Aug 07 20:16:11 pve13 corosync[2352]: [QUORUM] Members[1]: 3
Aug 07 20:16:11 pve13 pmxcfs[2125]: [status] notice: node lost quorum
root@pve12.in-berlin.de ~ # journalctl --since "2026-08-07 19:00:00" --until "2026-08-07 22:00:00" | grep -iE "watchdog|quorum|corosync.*(lost|retransmit|token)|pve-ha"
Aug 07 19:53:05 pve12 pve-ha-crm[2150]: migrate service 'vm:3000' to node 'pve12' (running)
Aug 07 19:53:05 pve12 pve-ha-crm[2150]: service 'vm:3000': state changed from 'started' to 'migrate' (node = pve11, target = pve12)
Aug 07 19:53:05 pve12 pve-ha-crm[2150]: migrate service 'vm:3002' to node 'pve12' (running)
Aug 07 19:53:05 pve12 pve-ha-crm[2150]: service 'vm:3002': state changed from 'started' to 'migrate' (node = pve11, target = pve12)
Aug 07 19:53:05 pve12 pve-ha-crm[2150]: migrate service 'vm:3010' to node 'pve12' (running)
Aug 07 19:53:05 pve12 pve-ha-crm[2150]: service 'vm:3010': state changed from 'started' to 'migrate' (node = pve11, target = pve12)
Aug 07 19:53:05 pve12 pve-ha-crm[2150]: migrate service 'vm:3012' to node 'pve12' (running)
Aug 07 19:53:05 pve12 pve-ha-crm[2150]: service 'vm:3012': state changed from 'start
root@pve11.in-berlin.de ~ # journalctl --since "2026-08-07 19:00:00" --until "2026-08-07 22:00:00" | grep -iE "watchdog|quorum|corosync.*(lost|retransmit|token)|pve-ha"
Aug 07 19:53:12 pve11 pve-ha-lrm[363408]: <root@pam> starting task UPID:pve11:00058B92:00351EB1:6A761B88:qmigrate:3010:root@pam:
Aug 07 19:53:12 pve11 pve-ha-lrm[363406]: <root@pam> starting task UPID:pve11:00058B91:00351EB1:6A761B88:qmigrate:3000:root@pam:
Aug 07 19:53:12 pve11 pve-ha-lrm[363407]: <root@pam> starting task UPID:pve11:00058B93:00351EB1:6A761B88:qmigrate:3002:root@pam:
Aug 07 19:53:17 pve11 pve-ha-lrm[363408]: Task 'UPID:pve11:00058B92:00351EB1:6A761B88:qmigrate:3010:root@pam:' still active, waiting
Aug 07 19:53:17 pve11 pve-ha-lrm[363406]: Task 'UPID:pve11:00058B91:00351EB1:6A761B88:qmigrate:3000:root@pam:' still active, waiting
Aug 07 19:53:17 pve11 pve-ha-lrm[363407]: Task 'UPID:pve11:00058B93:00351EB1:6A761B88:qmigrate:3002:root@pam:' still active, waiting
Aug 07 19:53:22 pve11 pve-ha-lrm[363408]: Task 'UPID:pve11:00058B
--> post-quantum key agreement
See also https://www.openssh.org/pq.html
OpenSSH has offered post-quantum key agreement (KexAlgorithms) by default since release 9.0 (April 2022), initially via the sntrup761x25519-sha512 algorithm. More recently, in OpenSSH 9.9, we have added a second post-quantum key agreement mlkem768x25519-sha256 and it was made the new default scheme in OpenSSH 10.0 (April 2025).
Imagine you’ve been hopping between tasks for a few months, creating a new branch for every ticket. Many were merged, some were abandoned, and others were just experiments. Now your local repository is overflowing with dozens of branches you no longer need.
This guide helps you clean up, by creating a script which:
- identifies local branches that don’t exist on any remote or whose upstream has been deleted,
- shows you what it plans to delete,
Are you stressed because a coworker left the company without documenting secret usage? Struggling to reverse-engineer encrypted secrets for critical workflows?
Simplify your process with this guide on securely encrypting and decrypting secrets in GitHub Actions. This practical approach ensures your sensitive information remains secure, helps to maintain smooth operations and enhance your security practices.
Learn how to use environment variables and OpenSSL for robust encryption, ensuring you have the tools to handle secrets efficiently. Stay secure and organised with these straightforward steps.
We often work with sensitive information, such as API keys or passwords. It is essential to maintain the confidentiality of this secrets and prevent unauthorized access.
Despite our best efforts, accidents do occur, resulting in the unintentional exposure of secrets.
- 7 commits out of 1,000 exposed at least one secret.
- 4.6% of active repositories leaked a secret.
To install gocryptfs, macFUSE is required, which relies on a license not accepted by Homebrew.
This is why the upgrade command refuses to work.
Installing or updating via homebrew fails for this reason.
Here you learn how to manually install and update gocryptfs.
As precondition, ensure you have Xcode, git and the "Go" programming language installed:
xcode-select --install