I updated to aws-api 0.8.437 and it appears to hang forever under certain conditions. Going down to 423 resolves the hang. I did take a thread dump during a hang. The below seems suspicious. I'm still digging in to try and get a minimal repro.
I just released a fix for this: https://github.com/cognitect-labs/aws-api/blob/master/CHANGES.md#08445--2020-02-25
Thanks!
Sure. Please confirm it works for you.
Ok, looking into it now.
Our tests are all passing. Going to deploy and let this marinate in the dev environment for a day.
Much appreciated!
related? https://github.com/cognitect-labs/aws-api/issues/130
Ah, we do assume a role.
I'm looking at this right now, though I won't be for much longer tonight.
I'll let you know if I find anything.
Haha. Ok great. Thank you.
Found the problem
What is it?
Actually, I'm not quite sure I understand it yet, but the source is the thread pool of size 1 here: https://github.com/cognitect-labs/aws-api/blob/2d57c12218ed4cdc1bc8584ab2a1ecf689aff3f3/src/cognitect/aws/credentials.clj#L42
If I change that to size 2 it doesn't hang, so it appears that it's locking up when the one credentials provider is wrapped within the other.
Oh, I get it.
The outer provider's request happens first and can't return until the inner provider's request, which is issued second, returns.
Ah
Writing up a workaround in that issue ....
Quick question, We’re changing from using the aws java sdk for aws-ses. For logging/auditing we’ve been storing the messageId
which the java sdk returns for a sent message. Is that available from the cognitect aws lib as well?
@slipset create an SES client, call (keys (aws/ops client))
to list the APIs you can call, then select the API you're calling and call (aws/doc client :APIYouWantToCall)
. It will show you what it takes / returns
@slipset FYI although it is correct about what fields it accepts, it is not 100% correct about which fields are required, because AWS docs are not 100% correct about it. See https://github.com/cognitect-labs/aws-api/issues/129 /cc @ghadi
Thanks! Help appreciated.