Skip to content

3par#1033

Merged
cvaroqui merged 25 commits into
opensvc:mainfrom
cvaroqui:main
May 22, 2026
Merged

3par#1033
cvaroqui merged 25 commits into
opensvc:mainfrom
cvaroqui:main

Conversation

@cvaroqui
Copy link
Copy Markdown
Member

No description provided.

cvaroqui added 25 commits May 11, 2026 08:26
Instead of using a sec to store this config.
* dedup the host list
* inverted logic in a condition

The first issue made the hp3par expected registration count zero.
The last issue made the hp3par expected registration count too high.
Needed to support fqdn in cluster node list.
Reformat the node config read prkey the same the scsi disk read
prkeys are reformatted, so the compare works as expected.

Without this patch, 0x00abc... failed to match 0xabc...
* use the same info ordering as disk.xp8: role, state, ...
* add mode
When the 2 arrays are exchanging correctly, the takeover node
must stop the rcg on the origin site before revert.
* wait for syncing to finish (or timeout)
* wait for array links to be established (or timeout)
* allow to resync the last delta before swapping roles (force_sync kw)
* allow toggling on/off the role swapping (swap_roles kw)
* allow toggling on/off the failover when array links are failed
  (auto_recover kw)
Devices served by arrays with replication can have lifecycles
that cause the pv to be orphaned and thus the vg is no longer
visible nor taggable/activable until a `pvscan --cache` is run.

We implemented this `pvscan --cache` only in the followers
provisioner code path. Add one in the start codepath if
necessary.
And upgrade the external fcache to 1.1.0
instead of `setclienv csvtable=1 ; nohdtot = 1 ; ` for the ssh
method and `cli -csvtable -nohdtot` for the cli method.

Also use the new ageingcache pkg to optimize the status command.
Not all users want that option.
And implement sub devices promotion to rw access.
Example:

	root@dev2n1:~# om daemon run 2>&1 | tail
	14:53:09.441 INF daemon: hb: ucast: rx: hb#11: add expected dev2n3 address: 10.29.0.13
	14:53:09.441 INF daemon: hb: ucast: rx: hb#11: listen to :9994 for [10.29.0.12 10.29.0.13]
	panic: runtime error: invalid memory address or nil pointer dereference
	[signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x1ddcb62]

	goroutine 322 [running]:
	github.com/opensvc/om3/v3/daemon/hb/hbucast.(*rx).Start.func2()
	    /root/dev/om3/daemon/hb/hbucast/hbrx.go:181 +0x5a2
	created by github.com/opensvc/om3/v3/daemon/hb/hbucast.(*rx).Start in goroutine 1
	    /root/dev/om3/daemon/hb/hbucast/hbrx.go:139 +0x559

With:

	root@dev2n1:~/dev/om3# om cluster config show --section hb#11,hb#12
	[hb#11]
	type = unicast
	port = 9995

	[hb#12]
	type = unicast
	port = 9995

This patch
- reduce the log verbosity
- fix the stack by testing the listener is not nil after retries
@cvaroqui cvaroqui merged commit 4a57887 into opensvc:main May 22, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant