Skip to content

[Trixie] Fix gensairpc.pl crash on Doxygen 1.9.8+#2282

Merged
tjchadaga merged 1 commit into
opencomputeproject:masterfrom
pavannaregundi:trixie
May 13, 2026
Merged

[Trixie] Fix gensairpc.pl crash on Doxygen 1.9.8+#2282
tjchadaga merged 1 commit into
opencomputeproject:masterfrom
pavannaregundi:trixie

Conversation

@pavannaregundi
Copy link
Copy Markdown
Contributor

@pavannaregundi pavannaregundi commented May 5, 2026

Fix gensairpc.pl crash on Doxygen 1.9.8+ found during libsaithriftv2 compilation by reusing NeedsTwoPassProcessing.

Why:
To fix below build error,

Uncaught exception from user code:
	 at gensairpc.pl line 480.
		main::assign_attr_types(HASH(0x55e190dc20c8), ARRAY(0x55e190d2d080)) called at gensairpc.pl line 434
		main::get_definitions() called at gensairpc.pl line 156
	main::assign_attr_types(HASH(0x55e190dc20c8), ARRAY(0x55e190d2d080)) called at gensairpc.pl line 434
	main::get_definitions() called at gensairpc.pl line 156

How:
gensairpc.pl crashed during SAI thrift build with an uncaught exception at line 480 (assign_attr_types) because its inline Doxygen layout detection was too weak - it only checked sai_8h.xml for any enumvalue presence, missing cases where the new Doxygen 1.9.8+ XML structure requires group__*.xml files to be processed for complete definitions. This caused incomplete parsing, leading to missing types and a croak in assign_attr_types when sai_attribute_value_t could not be found.

Changes:

  • xmlutils.pm: Add NeedsTwoPassProcessing and export it.
  • parse.pl: Remove local NeedsTwoPassProcessing; use imported version.
  • gensairpc.pl: Replace inline detection with NeedsTwoPassProcessing() call, fixing the build failure and eliminating code duplication.

@pavannaregundi pavannaregundi changed the title [trixie] Fix gensairpc.pl crash on Doxygen 1.9.8+ [Trixie] Fix gensairpc.pl crash on Doxygen 1.9.8+ May 5, 2026
Comment thread meta/gensairpc.pl Outdated
…ssing

Why:
To fix below build error

Uncaught exception from user code:
	 at gensairpc.pl line 480.
		main::assign_attr_types(HASH(0x55e190dc20c8), ARRAY(0x55e190d2d080)) called at gensairpc.pl line 434
		main::get_definitions() called at gensairpc.pl line 156
	main::assign_attr_types(HASH(0x55e190dc20c8), ARRAY(0x55e190d2d080)) called at gensairpc.pl line 434
	main::get_definitions() called at gensairpc.pl line 156

How:
gensairpc.pl crashed during SAI thrift build with an uncaught exception
at line 480 (assign_attr_types) because its inline Doxygen layout
detection was too weak - it only checked sai_8h.xml for any enumvalue
presence, missing cases where the new Doxygen 1.9.8+ XML structure
requires group__*.xml files to be processed for complete definitions.
This caused incomplete parsing, leading to missing types and a croak
in assign_attr_types when sai_attribute_value_t could not be found.

Changes:
- xmlutils.pm: Add NeedsTwoPassProcessing and export it.
- parse.pl: Remove local NeedsTwoPassProcessing; use imported version.
- gensairpc.pl: Replace inline detection with NeedsTwoPassProcessing()
  call, fixing the build failure and eliminating code duplication.

Signed-off-by: Pavan Naregundi <pnaregundi@marvell.com>
@saiarcot895
Copy link
Copy Markdown
Contributor

/azp run

@azure-pipelines
Copy link
Copy Markdown

Commenter does not have sufficient privileges for PR 2282 in repo opencomputeproject/SAI

@kcudnik
Copy link
Copy Markdown
Collaborator

kcudnik commented May 6, 2026

/azp run

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@saiarcot895
Copy link
Copy Markdown
Contributor

@tjchadaga could you review and merge?

@tjchadaga tjchadaga merged commit 82a8d7e into opencomputeproject:master May 13, 2026
3 checks passed
JaiOCP added a commit to JaiOCP/SAI that referenced this pull request May 27, 2026
Signed-off-by: JaiOCP <jai.kumar@broadcom.com>

SAI API performance monitoring

Signed-off-by: JaiOCP <jai.kumar@broadcom.com>

Fix gensairpc.pl crash on Doxygen 1.9.8+ by reusing NeedsTwoPassProcessing (opencomputeproject#2282)

Why:
To fix below build error

Uncaught exception from user code:
	 at gensairpc.pl line 480.
		main::assign_attr_types(HASH(0x55e190dc20c8), ARRAY(0x55e190d2d080)) called at gensairpc.pl line 434
		main::get_definitions() called at gensairpc.pl line 156
	main::assign_attr_types(HASH(0x55e190dc20c8), ARRAY(0x55e190d2d080)) called at gensairpc.pl line 434
	main::get_definitions() called at gensairpc.pl line 156

How:
gensairpc.pl crashed during SAI thrift build with an uncaught exception
at line 480 (assign_attr_types) because its inline Doxygen layout
detection was too weak - it only checked sai_8h.xml for any enumvalue
presence, missing cases where the new Doxygen 1.9.8+ XML structure
requires group__*.xml files to be processed for complete definitions.
This caused incomplete parsing, leading to missing types and a croak
in assign_attr_types when sai_attribute_value_t could not be found.

Changes:
- xmlutils.pm: Add NeedsTwoPassProcessing and export it.
- parse.pl: Remove local NeedsTwoPassProcessing; use imported version.
- gensairpc.pl: Replace inline detection with NeedsTwoPassProcessing()
  call, fixing the build failure and eliminating code duplication.

Signed-off-by: Pavan Naregundi <pnaregundi@marvell.com>

Count BFD session state changes from UP to DOWN (opencomputeproject#2268)

Signed-off-by: Chikkegowda Chikkaiah <cchikkai@cisco.com>

HW FRR switchover notification support for protection groups (opencomputeproject#2269)

Signed-off-by: Chikkegowda Chikkaiah <cchikkai@cisco.com>

Port storm control enhancemnets (opencomputeproject#2258) (opencomputeproject#2258)

Signed-off-by: rpmarvell <rperumal@marvell.com>
JaiOCP pushed a commit to JaiOCP/SAI that referenced this pull request May 28, 2026
…ssing (opencomputeproject#2282)

Why:
To fix below build error

Uncaught exception from user code:
	 at gensairpc.pl line 480.
		main::assign_attr_types(HASH(0x55e190dc20c8), ARRAY(0x55e190d2d080)) called at gensairpc.pl line 434
		main::get_definitions() called at gensairpc.pl line 156
	main::assign_attr_types(HASH(0x55e190dc20c8), ARRAY(0x55e190d2d080)) called at gensairpc.pl line 434
	main::get_definitions() called at gensairpc.pl line 156

How:
gensairpc.pl crashed during SAI thrift build with an uncaught exception
at line 480 (assign_attr_types) because its inline Doxygen layout
detection was too weak - it only checked sai_8h.xml for any enumvalue
presence, missing cases where the new Doxygen 1.9.8+ XML structure
requires group__*.xml files to be processed for complete definitions.
This caused incomplete parsing, leading to missing types and a croak
in assign_attr_types when sai_attribute_value_t could not be found.

Changes:
- xmlutils.pm: Add NeedsTwoPassProcessing and export it.
- parse.pl: Remove local NeedsTwoPassProcessing; use imported version.
- gensairpc.pl: Replace inline detection with NeedsTwoPassProcessing()
  call, fixing the build failure and eliminating code duplication.

Signed-off-by: Pavan Naregundi <pnaregundi@marvell.com>
JaiOCP added a commit to JaiOCP/SAI that referenced this pull request May 29, 2026
Signed-off-by: JaiOCP <jai.kumar@broadcom.com>

OFH Support

Signed-off-by: JaiOCP <jai.kumar@broadcom.com>

Fix gensairpc.pl crash on Doxygen 1.9.8+ by reusing NeedsTwoPassProcessing (opencomputeproject#2282)

Why:
To fix below build error

Uncaught exception from user code:
	 at gensairpc.pl line 480.
		main::assign_attr_types(HASH(0x55e190dc20c8), ARRAY(0x55e190d2d080)) called at gensairpc.pl line 434
		main::get_definitions() called at gensairpc.pl line 156
	main::assign_attr_types(HASH(0x55e190dc20c8), ARRAY(0x55e190d2d080)) called at gensairpc.pl line 434
	main::get_definitions() called at gensairpc.pl line 156

How:
gensairpc.pl crashed during SAI thrift build with an uncaught exception
at line 480 (assign_attr_types) because its inline Doxygen layout
detection was too weak - it only checked sai_8h.xml for any enumvalue
presence, missing cases where the new Doxygen 1.9.8+ XML structure
requires group__*.xml files to be processed for complete definitions.
This caused incomplete parsing, leading to missing types and a croak
in assign_attr_types when sai_attribute_value_t could not be found.

Changes:
- xmlutils.pm: Add NeedsTwoPassProcessing and export it.
- parse.pl: Remove local NeedsTwoPassProcessing; use imported version.
- gensairpc.pl: Replace inline detection with NeedsTwoPassProcessing()
  call, fixing the build failure and eliminating code duplication.

Signed-off-by: Pavan Naregundi <pnaregundi@marvell.com>

OFH Header

Signed-off-by: JaiOCP <jai.kumar@broadcom.com>

Count BFD session state changes from UP to DOWN (opencomputeproject#2268)

Signed-off-by: Chikkegowda Chikkaiah <cchikkai@cisco.com>

HW FRR switchover notification support for protection groups (opencomputeproject#2269)

Signed-off-by: Chikkegowda Chikkaiah <cchikkai@cisco.com>

Port storm control enhancemnets (opencomputeproject#2258) (opencomputeproject#2258)

Signed-off-by: rpmarvell <rperumal@marvell.com>
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.

4 participants