Fork me on GitHub
#aws
<
2020-02-24
>
kenny02:02:16

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.

kenny02:02:12

Ah, we do assume a role.

dchelimsky02:02:41

I'm looking at this right now, though I won't be for much longer tonight.

dchelimsky02:02:46

I'll let you know if I find anything.

kenny02:02:11

Haha. Ok great. Thank you.

dchelimsky02:02:52

Found the problem

kenny02:02:29

What is it?

dchelimsky02:02:51

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

dchelimsky02:02:27

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.

dchelimsky02:02:48

Oh, I get it.

dchelimsky02:02:35

The outer provider's request happens first and can't return until the inner provider's request, which is issued second, returns.

dchelimsky02:02:56

Writing up a workaround in that issue ....

4
dchelimsky15:02:05

Sure. Please confirm it works for you.

kenny15:02:17

Ok, looking into it now.

4
kenny16:02:38

Our tests are all passing. Going to deploy and let this marinate in the dev environment for a day.

dchelimsky16:02:31

Much appreciated!

slipset20:02:10

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?

ghadi20:02:56

@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

dchelimsky20:02:05

@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

slipset20:02:53

Thanks! Help appreciated.