Conversation
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
* fix monitor tests * fix parking tests (use Unsafe for reflective memory locations read/writes) * fix few bugs by adding `runInIgnoredSection` Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
* fix `patchResultsClock` function * remove redundant `AtomicLongTest` * fix delta in managed strategy handler of `getAndIncrement()` and similar methods * remove obsolete code from EventStructureMemoryTracker * perform physical write to memory on successful CAS Signed-off-by: Evgeniy Moiseenko <[email protected]>
* track constructor calls to track allocations of objects whose base classes are not instrumented Signed-off-by: Evgeniy Moiseenko <[email protected]>
* move `loopDetector.initialize()` into `ManagedStrategy.initializeInvocation` * comment debug byte-code printing Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
* fix `getFieldAccessMemoryLocation` (use actual runtime object's class name instead of compile-time access class name) * minor clean-up in MemoryTracker.kt Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
…entstruct-mc branch Signed-off-by: Evgeniy Moiseenko <[email protected]>
…ent type is unknown Signed-off-by: Evgeniy Moiseenko <[email protected]>
… new invocation and on new actor start) Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
* fix type computation for VarHandle accesses Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
* testing new model checking strategy * ensure that the object read from an intercepted read is transformed * repair primitives tests * repair `VarHandleLocalObjectsTest` Signed-off-by: Evgeniy Moiseenko <[email protected]>
* fix expected outcomes for `testLincheckPromptCancellation` Signed-off-by: Evgeniy Moiseenko <[email protected]>
… initialization) Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
… revisit this!) * decrease the number of loop iterations inside test's `operation()`, because currently large number of iterations triggers false-positive live-lock failure, due to naive implementation of spin-loops detection Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
* So, apparently, the `context` used in the `ParallelThreadsRunner::Completion` can somehow escape between different invocations of the test. If this happens, everything becomes really FUCKED UP, and I spent hours trying to debug it. It leads to a situation, when on the new run of the test, an old `ParallelThreadRunnerInterceptor` object (stored in the `context`) from the previous invocation is used instead. To fix the issue, I changed the `Completion::reset` logic. Instead of creating new interceptor object, I re-use the same object by reset its state. Since we only use completions in a very specific way in `ParallelThreadsRunner` (basically one separate completion object for each suspending actor) this should not, in theory, lead to any problem. Still, only Gods know if this is truly correct way to fix this. Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
Signed-off-by: Evgeniy Moiseenko <[email protected]>
eupp
commented
Oct 2, 2024
|
|
||
| public static void onArrayCopy(Object srcArray, int srcPos, Object dstArray, int dstPos, int length) { | ||
| getEventTracker().onArrayCopy(srcArray, srcPos, dstArray, dstPos, length); | ||
| } |
Collaborator
Author
There was a problem hiding this comment.
Add comment about System.arraycopy
eupp
commented
Oct 2, 2024
| boolean isStatic, boolean isFinal) { | ||
| if (!isStatic && obj == null) return false; // Ignore, NullPointerException will be thrown | ||
| return getEventTracker().beforeReadField(obj, className, fieldName, codeLocation, isStatic, isFinal); | ||
| return getEventTracker().beforeReadField(obj, className, fieldName, typeDescriptor, codeLocation, isStatic, isFinal); |
Collaborator
Author
There was a problem hiding this comment.
Re-check if typeDescriptor is required (find its usages).
Collaborator
Author
There was a problem hiding this comment.
Check if isPrimitive: Boolean would be enough.
Collaborator
Author
There was a problem hiding this comment.
TODO: Extract into separate PR.
Signed-off-by: Evgeniy Moiseenko <[email protected]>
eupp
commented
Jan 14, 2025
| boolean isStatic, boolean isFinal) { | ||
| if (!isStatic && obj == null) return false; // Ignore, NullPointerException will be thrown | ||
| return getEventTracker().beforeReadField(obj, className, fieldName, codeLocation, isStatic, isFinal); | ||
| return getEventTracker().beforeReadField(obj, className, fieldName, typeDescriptor, codeLocation, isStatic, isFinal); |
Collaborator
Author
There was a problem hiding this comment.
Check if isPrimitive: Boolean would be enough.
| boolean isStatic, boolean isFinal) { | ||
| if (!isStatic && obj == null) return false; // Ignore, NullPointerException will be thrown | ||
| return getEventTracker().beforeReadField(obj, className, fieldName, codeLocation, isStatic, isFinal); | ||
| return getEventTracker().beforeReadField(obj, className, fieldName, typeDescriptor, codeLocation, isStatic, isFinal); |
Collaborator
Author
There was a problem hiding this comment.
TODO: Extract into separate PR.
| // flags to import Unsafe module; | ||
| // it is used in some tests to check handling of unsafe APIs by Lincheck | ||
| "--add-opens", "java.base/jdk.internal.misc=ALL-UNNAMED", | ||
| "--add-exports", "java.base/jdk.internal.util=ALL-UNNAMED", |
Collaborator
Author
There was a problem hiding this comment.
Extract Unsafe tests into separate sub-project ?
This was referenced Jan 16, 2025
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.