Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automate a process to detect linker errors in GHA #2295

Open
7 of 21 tasks
jprestop opened this issue Oct 10, 2022 · 0 comments
Open
7 of 21 tasks

Automate a process to detect linker errors in GHA #2295

jprestop opened this issue Oct 10, 2022 · 0 comments
Assignees
Labels
alert: NEED ACCOUNT KEY Need to assign an account key to this issue component: build process Build process issue component: testing Software testing issue priority: medium Medium Priority requestor: METplus Team METplus Development Team type: task An actionable item of work
Milestone

Comments

@jprestop
Copy link
Collaborator

Describe the Task

This issue arose from MET Issue: Create test to replicate MET-11.0.0-beta3 linker errors and fix them #2281. While we were able to use "--as-needed" in LDFLAGS:

export LDFLAGS="${LDFLAGS} -Wl,--as-needed"

for replicating the linker error on seneca, automating this process has proven to be more difficult.

The branch feature_2281_linker_actions was set up to test, with the linker errors in place before they were fixed in the branch feature_2281_linker.

Using a few docker images (gcc:9.5.0, gcc:10-buster, gcc:10.4-buster) to test with, all produced the same error:

#29 58.01 /met/MET-feature_2281_linker_actions/src/basic/enum_to_string/enum_to_string: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /met/MET-feature_2281_linker_actions/src/basic/enum_to_string/enum_to_string)

Helpful command:

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

Julie was unable to upgrade the version of libstdc++.so.6, despite seeing that it should be available.

libstdc++6 is already the newest version (8.3.0-6) 

Adding "-static-libstdc++" to CFLAGS and LDFLAGS in the internal/scripts/environment/development.docker file seemed to eliminate the GLIBCXX_3.4.26 problem above, but also seemed to invalidate "--as-needed" as the compilation was successful, but the compilation was expected to fail due to linker problems.

Using the docker image for gcc:11-bullseye seemed to eliminate this problem, but there was an issue with pip3/pip being available for Python 3.9, which stopped the testing to move on to other higher priority items.

When time allows, continuing trying to add this functionality to our automate testing.

Time Estimate

1-3 days of work

Sub-Issues

Consider breaking the task down into sub-issues.

  • Add a checkbox for each sub-issue here.

Relevant Deadlines

NONE

Funding Source

TBD

Define the Metadata

Assignee

  • Select engineer(s) or no engineer required
  • Select scientist(s) or no scientist required

Labels

  • Select component(s)
  • Select priority
  • Select requestor(s)

Projects and Milestone

  • Select Repository and/or Organization level Project(s) or add alert: NEED PROJECT ASSIGNMENT label
  • Select Milestone as the next official version or Future Versions

Define Related Issue(s)

Consider the impact to the other METplus components.

Task Checklist

See the METplus Workflow for details.

  • Complete the issue definition above, including the Time Estimate and Funding Source.
  • Fork this repository or create a branch of develop.
    Branch name: feature_<Issue Number>_<Description>
  • Complete the development and test your changes.
  • Add/update log messages for easier debugging.
  • Add/update unit tests.
  • Add/update documentation.
  • Push local changes to GitHub.
  • Submit a pull request to merge into develop.
    Pull request: feature <Issue Number> <Description>
  • Define the pull request metadata, as permissions allow.
    Select: Reviewer(s) and Linked issues
    Select: Repository level development cycle Project for the next official release
    Select: Milestone as the next official version
  • Iterate until the reviewer(s) accept and merge your changes.
  • Delete your fork or branch.
  • Close this issue.
@jprestop jprestop added component: testing Software testing issue component: build process Build process issue type: task An actionable item of work priority: medium Medium Priority alert: NEED ACCOUNT KEY Need to assign an account key to this issue alert: NEED CYCLE ASSIGNMENT Need to assign to a release development cycle requestor: METplus Team METplus Development Team labels Oct 10, 2022
@jprestop jprestop added this to the MET 11.0.0 milestone Oct 10, 2022
@jprestop jprestop self-assigned this Oct 10, 2022
@jprestop jprestop mentioned this issue Oct 10, 2022
15 tasks
@JohnHalleyGotway JohnHalleyGotway removed the alert: NEED CYCLE ASSIGNMENT Need to assign to a release development cycle label Oct 13, 2022
@jprestop jprestop modified the milestones: MET 11.0.0, MET 11.1.0 Dec 1, 2022
@jprestop jprestop modified the milestones: MET 11.1.0, MET 12.0.0 Jun 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
alert: NEED ACCOUNT KEY Need to assign an account key to this issue component: build process Build process issue component: testing Software testing issue priority: medium Medium Priority requestor: METplus Team METplus Development Team type: task An actionable item of work
Projects
Status: 🟢 Ready
Development

No branches or pull requests

2 participants