-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Jan 2017 dependency upgrade #99
Conversation
AFAIK the pull request CI build only runs unit tests :) |
It seems to have run some integration tests too, one of which revealed an Rx related problem. But I can't tell yet if it's a problem with the upgrade or a bug in our code. Investigating. |
Mike, shall I take a look at what happened in Exposed and tackle it? I'm probably going to regret it, but... |
You can if you like - depends how much you value being on the latest version of Exposed. It's cleanup week after all. But if it's a big change don't worry about it. |
The CI failure appears to be an unrelated flake, I can't reproduce it but from the logs I got an idea of what might be going on and have a fix in another branch for it. |
@rick-r3 Can you review this please? |
b573fbb
to
3f07268
Compare
Looks good but seems to hang on some RX stuff in CI. Looking at the exception, I'm guessing there's an expectation of back pressure implementation been added somewhere that impacts the database wrapper. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good once CI is passing.
Can you also move the assertj dependency to be a compile one in test-utils. Last time I checked assertj was always present where test-utils was present. |
Yes, it's this change: ReactiveX/RxJava#4225 It's a race of some kind. I can't always reproduce it. Looking at the code it seems like an easy fix in this case, but we use PublishSubject in quite a few places and it seems like RxJava broke backwards compatibility pretty badly here: my reading is that attempting to emit on the subject when there are no observers will now always fail whereas before it would succeed just fine. That's a very big API break! I am going to take out the Rx upgrade. It seems clear that they have changed the API in major ways that don't cause compile errors but can cause subtle failures at runtime. I think not just PublishSubject changed. So to upgrade we are going to have to understand what they've done (I didn't see any mention of this in the release notes even though they knew it'd break code) and then audit our usages to figure it out. I'll file a task in JIRA to do this, but I don't think we have any real reason to upgrade right now. |
3f07268
to
119d00c
Compare
My bad - I was trying to read the upstream change from the diff and got confused. You can still emit on a subject with no subscribers. As the problem is intermittent, it will require some more debugging to find out where the missing requests are. I've still left the Rx upgrade out, we can handle it in a different PR. |
There is another effect of the |
Thanks! That's pretty amazing support! :) 🍺 I think the issue is that we have a class called |
Upgrade dependencies and centralise some more version numbers in the root gradle file.
Three dependencies had to be held back:
Not assigning a reviewer yet - waiting to see what CI makes of it as I didn't bother to run the integration tests locally.