Skip to content

Resolved ptest failures in espeak-ng package#15984

Merged
kgodara912 merged 2 commits intomicrosoft:3.0-devfrom
v-aaditya:topic_espeak-ng-3.0
Mar 19, 2026
Merged

Resolved ptest failures in espeak-ng package#15984
kgodara912 merged 2 commits intomicrosoft:3.0-devfrom
v-aaditya:topic_espeak-ng-3.0

Conversation

@v-aaditya
Copy link
Copy Markdown
Contributor

@v-aaditya v-aaditya commented Feb 25, 2026

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

  • The toolchain has been rebuilt successfully (or no changes were made to it)
  • The toolchain/worker package manifests are up-to-date
  • Any updated packages successfully build (or no packages were changed)
  • Packages depending on static components modified in this PR (Golang, *-static subpackages, etc.) have had their Release tag incremented.
  • Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
  • All package sources are available
  • cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json, .github/workflows/cgmanifest.json)
  • LICENSE-MAP files are up-to-date (./LICENSES-AND-NOTICES/SPECS/data/licenses.json, ./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md, ./LICENSES-AND-NOTICES/SPECS/LICENSE-EXCEPTIONS.PHOTON)
  • All source files have up-to-date hashes in the *.signatures.json files
  • sudo make go-tidy-all and sudo make go-test-coverage pass
  • Documentation has been updated to match any changes to the build system
  • Ready to merge

Summary

Resolved ptest failures in espeak-ng package by disabling parallel build in check section.

In brief, during the espeak-ng test build, libtool attempts to link the espeak test library src/libespeak-ng-test.la, which depends on many objects generated from src/libespeak-ng/*.c. The build logs show libtool compile steps producing PIC objects under src/libespeak-ng/.lib and libtool wrapper (.lo).

However, the error indicates the expected wrapper file src/libespeak-ng/test_la-translate.lo is not a valid libtool object, typically meaning the file either does not exist as a proper ".lo" text wrapper or otherwise corrupted. In the test log file, this seems to be the root cause of the issue, where the library is linked before being built. This mismatch commonly occurs when using Automake's subdir-objects with custom suffix rules or parallel/concurrent builds that race on object generation.

AI Analysis relevance (In %) / Reasoning

AI Analysis relevance (In %): 99

Build/Dependency Information

The PR is a leaf PR which builds alone successfully.

Change Log
  • modified: SPECS/espeak-ng/espeak-ng.spec
Does this affect the toolchain?

NO

Associated issues
Test Methodology
  • Local build was successful.
image
  • Screenshot to confirm that the check section is built serially.
image

@microsoft-github-policy-service microsoft-github-policy-service Bot added Packaging 3.0-dev PRs Destined for AzureLinux 3.0 labels Feb 25, 2026
@v-aaditya
Copy link
Copy Markdown
Contributor Author

@v-aaditya
Copy link
Copy Markdown
Contributor Author

Buddy Build has been triggered - https://dev.azure.com/mariner-org/mariner/_build/results?buildId=1056796&view=results

Buddy Build has passed.

@v-aaditya v-aaditya marked this pull request as ready for review February 25, 2026 11:46
@v-aaditya v-aaditya requested a review from a team as a code owner February 25, 2026 11:46
@Kanishk-Bansal Kanishk-Bansal added the ptest package testing (%check section in spec) label Mar 3, 2026
@v-aaditya v-aaditya changed the title [Work Item #14940] Resolved ptest failures in espeak-ng package Resolved ptest failures in espeak-ng package Mar 6, 2026
Copy link
Copy Markdown
Contributor

@Kanishk-Bansal Kanishk-Bansal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Root cause analysis is correct — the libtool race condition with parallel builds is a well-known class of bug in autotools projects

define _smp_mflags -j1 is a global override — not scoped to %check

Using %define _smp_mflags -j1 inside %check redefines the macro globally for the rest of the spec. While this works here because %check is the last section that calls %make_build, it's fragile. If anyone adds a %post build step or reorders sections, the build phase would also get -j1.

Recommendation: Use %make_build -j1 check directly (or make -j1 check) instead of redefining the macro. This is more explicit and avoids side effects. Alternatively, %global _smp_mflags -j1 would at least make the intent clearer, but the inline override is still preferred

@v-aaditya
Copy link
Copy Markdown
Contributor Author

Root cause analysis is correct — the libtool race condition with parallel builds is a well-known class of bug in autotools projects

define _smp_mflags -j1 is a global override — not scoped to %check

Using %define _smp_mflags -j1 inside %check redefines the macro globally for the rest of the spec. While this works here because %check is the last section that calls %make_build, it's fragile. If anyone adds a %post build step or reorders sections, the build phase would also get -j1.

Recommendation: Use %make_build -j1 check directly (or make -j1 check) instead of redefining the macro. This is more explicit and avoids side effects. Alternatively, %global _smp_mflags -j1 would at least make the intent clearer, but the inline override is still preferred

Sure, will update the spec file accordingly and confirm by executing local build and Buddy build.

@v-aaditya v-aaditya force-pushed the topic_espeak-ng-3.0 branch from 7f9bf3b to c266bcd Compare March 16, 2026 03:55
@v-aaditya
Copy link
Copy Markdown
Contributor Author

@Kanishk-Bansal Could you please re-trigger the Buddy Build !

@v-aaditya
Copy link
Copy Markdown
Contributor Author

@Kanishk-Bansal Could you please re-trigger the Buddy Build !

The Buddy Build has been triggered and has also passed !

Copy link
Copy Markdown
Contributor

@Kanishk-Bansal Kanishk-Bansal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes LGTM

@Kanishk-Bansal Kanishk-Bansal added the ready-for-stable-review PR has passed initial review and is now ready for a second-level stable maintainer review label Mar 16, 2026
Copy link
Copy Markdown
Contributor

@kgodara912 kgodara912 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Minor correction in parallel execution of only check section due to failure in parallel execution. Buddy build is successful. LGTM.

@kgodara912 kgodara912 merged commit d0c8270 into microsoft:3.0-dev Mar 19, 2026
17 checks passed
BinduSri-6522866 pushed a commit to BinduSri-6522866/azurelinux that referenced this pull request Mar 31, 2026
AkarshHCL pushed a commit to AkarshHCL/azurelinux that referenced this pull request Apr 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3.0-dev PRs Destined for AzureLinux 3.0 Packaging ptest package testing (%check section in spec) ready-for-stable-review PR has passed initial review and is now ready for a second-level stable maintainer review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants