Skip to content

Several initialization bugfixes#1203

Merged
karya0 merged 3 commits intomainfrom
dev/karya0/libdl
Apr 23, 2025
Merged

Several initialization bugfixes#1203
karya0 merged 3 commits intomainfrom
dev/karya0/libdl

Conversation

@karya0
Copy link
Copy Markdown
Member

@karya0 karya0 commented Apr 21, 2025

These commits fix issues that are observed during initialization when non-glibc malloc libraries and programs where constructors are called before DMTCP is fully initialized.

Copy link
Copy Markdown
Collaborator

@xuyao0127 xuyao0127 left a comment

Choose a reason for hiding this comment

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

LGTM

@karya0 karya0 requested a review from Copilot April 21, 2025 22:35
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR fixes initialization issues when using non-glibc malloc libraries and when constructors are called before DMTCP is fully initialized. Key changes include:

  • Returning a status from ThreadSync::libdlLockLock() to conditionally unlock in LibDlWrapperLock.
  • Adding a conditional block to close file descriptors only when appropriate.
  • Updating PID mapping functions to handle pid values of 0 as special cases.

Reviewed Changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
src/wrapperlock.cpp Adjusts lock acquisition and conditional unlocking logic.
src/shareddata.cpp Fixes file descriptor management during initialization.
src/plugin/pid/virtualpidtable.cpp Updates PID translation functions to handle special pid cases.
include/wrapperlock.h Declares new private member for tracking lock acquisition.
Comments suppressed due to low confidence (1)

include/wrapperlock.h:52

  • [nitpick] Confirm that the in-class initializer for 'acquired' is consistent with the project's coding style; if compatibility issues arise, consider initializing this member in the constructor's initializer list instead.
bool acquired = false;

@karya0 karya0 merged commit 7bbbb44 into main Apr 23, 2025
1 check passed
@karya0 karya0 deleted the dev/karya0/libdl branch April 30, 2025 19:33
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.

3 participants