Skip to content

Conversation

@AArnott
Copy link
Collaborator

@AArnott AArnott commented Sep 9, 2020

We've taken significant dependencies on MessagePack and some of these scenarios will be running on mono on a mac. So we should have tests running on mono to verify that MessagePack works properly on that runtime.

At the moment, several tests fail, so I'm skipping those few for now in order to get the hundreds of tests that do pass running regularly. I'll circle around and investigate the tests that fail on mono to see which ones should/can be fixed.

@AArnott AArnott added this to the v2.2 milestone Sep 9, 2020
@AArnott AArnott self-assigned this Sep 9, 2020
@AArnott AArnott changed the base branch from v2.2 to master September 9, 2020 20:48
@AArnott AArnott marked this pull request as ready for review September 9, 2020 20:58
@AArnott AArnott modified the milestones: v2.2, v2.1 Sep 9, 2020
@AArnott AArnott requested a review from neuecc September 9, 2020 20:58
@AArnott
Copy link
Collaborator Author

AArnott commented Sep 9, 2020

Mono is unstable with these tests. I've seen it fail several tests on my computer and succeed the next time. It's happening in Azure Pipelines too. Right now 7 tests are failing in AzP related to a SharedData_FirstSimpleDataFormatter73 type load failure. Since we're using static constructors everywhere in MessagePack, one failure will cascade to all subsequent uses of that type.

I think several of the tests I've 'skipped' already for mono were of this same variety, where the tests themselves may not have been at fault, but perhaps were a casualty of a prior failure. I need to work on this more...

Copy link
Member

@neuecc neuecc left a comment

Choose a reason for hiding this comment

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

ok

@AArnott
Copy link
Collaborator Author

AArnott commented Sep 9, 2020

So the irony is that it's all just one bug in mono, and I think it has to do with either MessagePack's dynamic code generation or heavy use of static generic types. Either way, the tests all pass on mono, provided they run sequentially. When run in parallel, it fails very frequently on a random set of tests.

@AArnott
Copy link
Collaborator Author

AArnott commented Sep 9, 2020

Filed mono/mono#20369 to track the concurrency bug on the mono side. In the meantime, our -parallel none switch is keeping the tests passing reliably in my testing.

@AArnott AArnott merged commit 7d82478 into MessagePack-CSharp:master Sep 9, 2020
@AArnott AArnott deleted the TestOnMono branch September 9, 2020 23:02
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.

2 participants