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

Can create rowan audit failures by sending _useUnicodeComparePrimitives: #898

Open
ericwinger opened this issue Feb 15, 2023 · 1 comment
Assignees
Labels
bug Something isn't working
Projects

Comments

@ericwinger
Copy link
Member

Reproduction case:

Rowan projectTools audit auditAll.  "verify audit is clean"
Unicode16 _useUnicodeComparePrimitives: true.  "This causes the audit corruption" 
Rowan projectTools audit auditAll "Run audit again and see audit failures- "

This is not the way to turn on unicode comparison mode, but if this is run and a commit is done, the audit will get failures. Probably shouldn't allow the user to mess up their audit results by sending a message.

As an aside, I did see how it might be possible to send this method through normal code.
GsCurrentSession>>initialize sends Unicode16>>installUnicodeComparePrimitives which sends Unicode16>>_useUnicodeComparePrimitieves: That looks suspicious to me and may be the reason why my Jadeite unit tests would show rowan audit failures from time to time.

@ericwinger ericwinger added the bug Something isn't working label Feb 15, 2023
@dalehenrich
Copy link
Member

The audit failures are all related to base image packages and it seems that we are getting three different errors:

  1. Compiled method is not identical to loaded method
    a. looks to be because a method got compiled without updating the loaded stuff?
  2. Mismatched method category
    a. looks to be because a class category was changed from a String to a Symbol?
  3. classVars changed
    a. looks to be because the order of classVars has changed ... but class vars should be sorted when compared?
    The fact that the audit failures are being caused by a switch to unicode comparison mode, with no direct edits to the affected methods and classes, implies that the audit code is sensitive to comparisons and/or sort order ...

Rowan has never been tested in an environment where the comparison mode has been changed, so it is not too surprising that this is going on ...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
MasterV3.0
Awaiting triage
Development

No branches or pull requests

2 participants