NEWS-5.26.02
Announcement of the OpenSAF 5.26.02 release
ChangeLog-5.26.02
release: Update README, configure.ac for OpenSAF 5.27.01
release: Merge branch 'develop' into release
release: Update NEWS, README and ChangeLog for OpenSAF 5.26.02
osaf: etcd3.plugin does not work well with etcd 3.4
osaf: etcd3.plugin does not work well with etcd 3.4
pyosaf: import abstract base classes (ABCs) fails on python 3.10+
imm: immloadd raise coredump when validation abort in case of empty errorStrings
amfnd: mismatch message id during split-brian in roaming SC
ntf: fix errors reported by Valgrind in ntftest
imm: introduce new option for immcfg that allow overwrite when load from xml file
smf: Valgrind reported errors
amf: SU is not in healthy state
log: memleak detected by valgrind
amf: node did not reboot in split-brain prevention
imm: Valgrind reported errors
imm: PL sync failed after reconnected with SC
fmd: sc failed to failover in roamming mode
build: support config runstatedir when build opensaf package
osaf: tcp_server.py does not work from python 3.12 and later
imm: cannot set implementer after merge network
osaf: unable to identify the cause of Locked failed
imm: update readme for new introduce in ticket-2985
imm: old Simple API for XML interface is deprecated
OpenSAF: Lack of LICENSE and NOTICE files
imm: immloadd raise coredump when validation abort in case of empty errorStrings
commit 54e676c90f998d401bc403996d7bf197a2eb2730 (HEAD -> develop, origin/develop) Author: tai.h.nguyen tai.h.nguyen@endava.com Date: Mon Nov 3 03:30:27 2025 +0000 imm: fix coredump on validation abort when errorStrings is empty [#3380] Check null pointer before accessing errorString to avoid coredump.
imm: fix coredump on validation abort when errorStrings is empty [#3380]
SMF: Cannot view image in 2.2.1 OpenSAF SMFSv PR
NTF: The NTFSv PR document's diagram does not fit on the page
ntf: fix diagram in OpenSAF_NTFSv_PR.odt
smf: fix cannot view diagram in OpenSAF_SMFSv_PR.odt
imm: immloadd raise coredump when validation abort in case of empty errorStrings
imm: incorrect value when load empty value from xml file
commit 074cdef2349a019edadfba965961001975481bfb (HEAD -> develop, origin/develop, ticket-3392) Author: Thien Minh Huynh thien.m.huynh@endava.com Date: Thu Dec 18 02:45:17 2025 +0000 imm: correct handle null when load xml file [#3392] Only accept handle null when has an attribute xsi:nil="true" Not handle null in case <value></value>
imm: correct handle null when load xml file [#3392]
amf: dupplicate assignment in roaming SC split brain test
commit 4859bf6a95d336b97d921ea7e7f4c92ecaf85b89 (HEAD -> develop, origin/develop, ticket-3382) Author: Thang Duc Nguyen thang.d.nguyen@endava.com Date: Tue Dec 23 03:02:35 2025 +0100 amf: avoid mismatch in create/delete SUSI object [#3382] This is to correct the previous fix in this ticket. There are some cases that the mismatch can happen. - Create is queued -> delete direct -> create in queue executed. - Delete is queued -> create direct -> delete in queue executed. The fix is based on the mechanism,...
ntf: fix ntfd coredump
commit eb24877a84905aa5d72b9551764c271c8b3bd24e (HEAD -> develop, origin/develop) Author: khuonglb khuong.b.le@endava.com Date: Wed Oct 1 15:51:31 2025 +0700 ntfd: prevent coredump on null client during notification [#3359] ntfd could crash when a notification was processed after client was removed. Leaving a null client pointer and causing a null pointer dereference Check for a null client before handling notifications and return early.
ntfd: prevent coredump on null client during notification [#3359]
ntf: fix ntfd coredump
SMF: Cannot view image in 2.2.1 OpenSAF SMFSv PR
NTF: The NTFSv PR document's diagram does not fit on the page
build: support config runstatedir when build opensaf package
Missing README in dist package
commit 1cf2d0f5b85f5c474ebbd3f2d6ef8cc8c47aada9 (HEAD -> develop, origin/develop, ticket-3381) Author: Vu Luu Vu.Luu@endava.com Date: Tue Nov 4 05:27:26 2025 +0100 build: Include missing README files in OpenSAF package [#3381]
build: Include missing README files in OpenSAF package [#3381]
amf: dupplicate assignment in roaming SC split brain test
There are some side effects of the fix. It need to be updated.
support config runstatedir when build opensaf package
/var/run is deprecated in most modern Linux distributions
/var/run is deprecated in most modern Linux distributions
/var/run is deprecated in most modern Linux distributions
imm: incorrect value when load empty value from xml file
Hi Thang, Sorry, I want to correct this use case. <object class="Test"> <dn>test=2</dn> <attr> <name>limitTime</name> <value></value> </attr> </object> This is not considering a valid empty/nil use case. It violates with empty data if data type of string is empty. That what xsi:nil="true" introduced. Example: <attr> <name>limitTime</name> <type>SA_STRING_T</type> <category>SA_CONFIG</category> <flag>SA_WRITABLE</flag> <default-value>15</default-value> </attr> <attr> <name>limitTime</name> <value></value>...
Hi Thang, Sorry, I want to correct this use case. <object class=""> <dn>test=2</dn> <attr> <name>limitTime</name> <value></value> </attr> </object> This is not considering a valid empty/nil use case. It violates with empty data if data type of string is empty. That what xsi:nil="true" introduced. Best Regards, Thien
imm: incorrect value when load empty value from xml file
imm: incorrect value when load empty value from xml file
commit 5c7ff8b80e54cdf0ac1e203d9f0db1ccc6ab9269 (HEAD -> develop, origin/develop, ticket-3392) Author: Thien Minh Huynh thien.m.huynh@endava.com Date: Mon Nov 3 09:04:42 2025 +0000 imm: correct xml parser to SaImmAttrValuesT_2 [#3392] imm import does not handle parse empty tag. This commit just handles parsing empty tags to SaImmAttrValuesT_2.
Hi Thang, https://sourceforge.net/p/opensaf/mailman/message/59267063/ I have updated to handle use case that you mentioned. Best Regards, Thien
Hi Thang, The input from xml "<value xsi:nil="true">" is valid. The output of immlist test=1 is expected. limitTime SA_UINT32_T 15 (0xf)</value> The input from xml "<value></value>" is valid. But the output of immlist test=2 is not expected. limitTime SA_UINT32_T 0 (0x0)
Hi Thang, The input from xml "<value xsi:nil="true">" is valid. But the output of immlist test=1 is expected. limitTime SA_UINT32_T 15 (0xf)</value> The input from xml "<value></value>" is valid. But the output of immlist test=2 is not expected. limitTime SA_UINT32_T 0 (0x0)
Hi Thang, The input from xml "<value></value>" is valid. But the output of immlist test=1 is expected. limitTime SA_UINT32_T 15 (0xf) The input from xml "<value xsi:nil="true">" is valid. But the output of immlist test=2 is not expected. limitTime SA_UINT32_T 0 (0x0)</value>
Hi Thang, The output of immlist test=1 is expected behavior. limitTime SA_UINT32_T 15 (0xf) The output of immlist test=2 is not expected behavior. limitTime SA_UINT32_T 0 (0x0)
Hi Thien, I change a little of xml file to <?xml version="1.0"?> <imm:IMM-contents xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="SAI-AIS-IMM-XSD-A.02.13.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:imm="http://www.saforum.org/IMMSchema"> <class name="Test"> <category>SA_CONFIG</category> <rdn> <name>test</name> <type>SA_STRING_T</type> <category>SA_CONFIG</category> <flag>SA_INITIALIZED</flag> </rdn> <attr> <name>limitTime</name> <type>SA_UINT32_T</type>...
imm: incorrect value when load empty value from xml file
imm: incorrect value when load empty value from xml file
amf: crashes during switch-over if tcp arbitration server is down
commit f6099cb215901a1aa56270225ab7bbc59519ab2f (HEAD -> develop, origin/develop, ticket-3386) Author: Vu Luu Vu.Luu@endava.com Date: Tue Nov 18 04:58:52 2025 +0000 amf: prevent AMF crashes during switch-over [#3386] When TCP arbitration server is down during switch-over, standby node fails to promote itself to active in the consensus service which leads to AMF crashing. This fix removes the assertion that triggers the crash, allowing the switch-over process to complete more gracefully.
amf: crashes during switch-over if tcp arbitration server is down
Thanks Thien for your response.
Hi Nagendra, They split based on active and standby of their app. There are 3 partitions: Partition 1: Active Partition 2: Standby Partition 3: remaining nodes Are you using STONITH, etcd leader election underneath ? No, they are not using split brain prevent solution like STONITH, arbitration (tcp or etcd) Best Regards, Thien
Thanks Thien for your response. So, how many subnets was split like 2 or 3 or more? Were there any payloads? Are you using STONITH, etcd leader election underneath ?
NTF: Extend ntftest test cases using NTF APIs multithreading
Hi Nagendra Kumar, The issue only reproduces on the application. They are use openstack tool to split/merge network. Cluster size 7 SCs. This is my analysis get from IMM trace. $ grep -a "@Gateway-SC-1" ./*/opensaf/osaf.log | sort -k 2,2 ./SC-5/opensaf/osaf.log:<141>1 2025-10-08T19:05:42.909897+03:00 SC-5 osafimmnd 4367 osaf.log [meta sequenceId="1536"] 4367:src/imm/immnd/ImmModel.cc:14113 NO Implementer disconnected 495 <0, 2470b(down)> (@Gateway-SC-1) ./SC-7/opensaf/osaf.log:<141>1 2025-10-08T19:05:43.048365+03:00...
Hi Nagendra Kumar, The issue only reproduces on the application. They are use openstack tool to split/merge network. Cluster size 7 SCs. This is my analysis get from IMM trace. $ grep -a "@Gateway-SC-1" ./*/opensaf/osaf.log | sort -k 2,2 ./SC-5/opensaf/osaf.log:<141>1 2025-10-08T19:05:42.909897+03:00 SC-5 osafimmnd 4367 osaf.log [meta sequenceId="1536"] 4367:src/imm/immnd/ImmModel.cc:14113 NO Implementer disconnected 495 <0, 2470b(down)> (@Gateway-SC-1) ./SC-7/opensaf/osaf.log:<141>1 2025-10-08T19:05:43.048365+03:00...
osaf: tcp_server.py does not work from python 3.12 and later
amf: there is no recovery when role failover failed in roaming SC test
commit 9c10b218955d8b8f6276d7f67d71222d82b4f076 (HEAD -> develop, origin/develop, ticket-3383) Author: Thang Duc Nguyen thang.d.nguyen@endava.com Date: Mon Nov 10 07:34:08 2025 +0700 amf: correct role failover failed [#3383] Currently role failover from standby to active does not handle error return code correctly. It causes there is no AMF-OI for AMF objects. The fix is to correct handle the error return code so that AMF can be recovered automatically.
Hi Thien Minh Huynh, can you please share reproducible steps, how are you creating split brain and how are you doing recovery, how many nodes, etc. Thanks
Hi Thien Minh Huynh, can you please reproducible steps, how are you creating split brain and how are you doing recovery, how many nodes, etc. Thanks
imm: cannot set implementer after merge network
imm: cannot set implementer after merge network
amf: there is no recovery when role failover failed in roaming SC test
osaf: unable to identify the cause of Locked failed
osaf: unable to identify the cause of Locked failed
imm: update readme for new introduce in ticket-2985
imm: update readme for new introduce in ticket-2985
imm: old Simple API for XML interface is deprecated
imm: old Simple API for XML interface is deprecated
imm: old Simple API for XML interface is deprecated
amf: crashes during switch-over if tcp arbitration server is down
amf: crashes during switch-over if tcp arbitration server is down
amf: dupplicate assignment in roaming SC split brain test
commit 3958cc4b7f9853354020c8a30b3c0fff90ae4283 (HEAD -> develop, origin/develop, ticket-3382) Author: Thang Duc Nguyen thang.d.nguyen@endava.com Date: Fri Oct 24 14:38:29 2025 +0700 amfd: correct rtObject create/delete/update [#3382] AMFD attempts to create the rtObject. If unsuccessful, it handles the creation via the queue. However, it does not correctly handle the case when ERR_EXIST is returned. In this scenario, the error should be ignored to prevent the creation of duplicate SUSI records....