Giter Club home page Giter Club logo

Comments (14)

mullermp avatar mullermp commented on June 26, 2024 8

A fix should be shipped in the next couple hours in core version 3.187.1

from aws-sdk-ruby.

mscrivo avatar mscrivo commented on June 26, 2024 3

We're seeing very similar issues here, but for us it started today at roughly 7:24am UTC. This is the second issue we've had to deal with this weekend with SQS. First friday night, Shoryuken started failing on empty receives on this line, which we had to monkey patch to check for null responses (even though the AWS SDK states that it should return an empty array), because the messages response was intermittently coming back as nil instead of []. These issues are popping up without any changes on our end, ie. no deployments occurred when the errors started.

from aws-sdk-ruby.

mullermp avatar mullermp commented on June 26, 2024 2

Thank you for the explanation. Can you explain why we seemingly saw the issue start at 2 random time over the weekend? Was there a slow rollout of responding with the new format on the back end? Otherwise, I would have expected this to pop up right away when we updated to the new gem.

After switching protocols, SQS started sending a body like { "Message" [] } which was working in the Ruby SDK but was breaking other SDKs like Java. Over last weekend, SQS deployed a change that made the value null, "fixing the issue", so the body would come back as {}. The Ruby SDK then parsed this as nil messages.

from aws-sdk-ruby.

alextwoods avatar alextwoods commented on June 26, 2024 1

We believe this is related to the protocol change from Query to aws json: eb6ac8c

The SDK is behaving correctly for the AWS json protocol: https://github.com/smithy-lang/smithy/blob/main/smithy-aws-protocol-tests/model/awsJson1_1 but I believe this is a change in behavior from the previous query protocol.

from aws-sdk-ruby.

mscrivo avatar mscrivo commented on June 26, 2024 1

FYI downgrading to gem version 1.65 appears to have fixed the issue for us.

from aws-sdk-ruby.

mullermp avatar mullermp commented on June 26, 2024 1

The service accepts both formats. The older version of the gem will initiate the old format (query) and so the service responds that way. The new version of the gem initiates with the new format (json) and responds that way, too. The fix is unclear, and a few SDKs are affected, we are currently deliberating the correct approach. In the mean time, please use the older version.

from aws-sdk-ruby.

geeksam avatar geeksam commented on June 26, 2024 1

I lost a good chunk of my Saturday attempting to diagnose this issue, eventually monkeypatching the same line in Shoryuken that @mscrivo linked above. Appreciate the info about downgrading to 1.65.

from aws-sdk-ruby.

mullermp avatar mullermp commented on June 26, 2024

Thanks for reporting this. Recently sqs changed its wire protocol from query to json. Are you able to reproduce with http_wire_trace: true as a client option, to see if the service is returning messages at all? Does rolling back the gem version solve the issue?

from aws-sdk-ruby.

mscrivo avatar mscrivo commented on June 26, 2024

I'm a bit confused, is it not automatically using the json protocol when using 1.67+? or is there a flag that needs to be set to enable it?

from aws-sdk-ruby.

mscrivo avatar mscrivo commented on June 26, 2024

Thank you for the explanation. Can you explain why we seemingly saw the issue start at 2 random time over the weekend? Was there a slow rollout of responding with the new format on the back end? Otherwise, I would have expected this to pop up right away when we updated to the new gem.

from aws-sdk-ruby.

mullermp avatar mullermp commented on June 26, 2024

After discussion within the greater SDK team, the Ruby SDK's behavior of default empty list was not correct, but we must preserve this behavior. I have a fix out that is pending review and protocol tests (this kind of change is considered high risk) #2948

from aws-sdk-ruby.

github-actions avatar github-actions commented on June 26, 2024

⚠️COMMENT VISIBILITY WARNING⚠️

Comments on closed issues are hard for our team to see.
If you need more assistance, please either tag a team member or open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.

from aws-sdk-ruby.

mullermp avatar mullermp commented on June 26, 2024

The gem has been released, please upgrade and let me know if it works. I'm sorry for any troubles this caused (and hopefully my change does not cause trouble too!) SQS protocol change was very high risk and unfortunately I'm just along for the ride.

from aws-sdk-ruby.

github-actions avatar github-actions commented on June 26, 2024

⚠️COMMENT VISIBILITY WARNING⚠️

Comments on closed issues are hard for our team to see.
If you need more assistance, please either tag a team member or open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.

from aws-sdk-ruby.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.