Comments (2)
This seems to come from net/http
(https://github.com/golang/go/blob/master/src/net/http/h2_bundle.go#L1114) and from a quick look at that file it seems something went wrong in the HTTP communication between irc-slack and the Slack API service. Do you see this problem with other API calls too? Can you reproduce this consistently, or is it intermittent?
from irc-slack.
This problem seems to be caused by the slack-go library attempting to include a long list of users in the user
field, which the current API doc only specifies one.
Here is more info:
% GODEBUG=http2debug=2 ./irc-slack -D -L debug
...
[2021-07-08T23:31:17+02:00] DEBUG [github.com/sirupsen/logrus.(*Entry).Debugf][entry.go][347] ircslack: Fetched 46 user IDs for channel XXXX (fetched so far: 46)
[2021-07-08T23:31:17+02:00] DEBUG [github.com/sirupsen/logrus.(*Entry).Debugf][entry.go][347] ircslack: Retrieving user information for 46 users
[2021-07-08T23:31:17+02:00] DEBUG [github.com/sirupsen/logrus.(*Entry).Debugf][entry.go][347] ircslack: Fetching information for 38 users out of 46 (8 already in cache)
[2021-07-08T23:31:17+02:00] DEBUG [github.com/sirupsen/logrus.(*Entry).Debugf][entry.go][347] ircslack: Fetching 38 users of 46, attempt 1 of 3
2021/07/08 23:31:17 http2: Transport encoding header ":authority" = "slack.com"
2021/07/08 23:31:17 http2: Transport encoding header ":method" = "POST"
2021/07/08 23:31:17 http2: Transport encoding header ":path" = "/api/users.info"
2021/07/08 23:31:17 http2: Transport encoding header ":scheme" = "https"
2021/07/08 23:31:17 http2: Transport encoding header "content-type" = "application/x-www-form-urlencoded"
2021/07/08 23:31:17 http2: Transport encoding header "content-length" = "576"
2021/07/08 23:31:17 http2: Transport encoding header "accept-encoding" = "gzip"
2021/07/08 23:31:17 http2: Transport encoding header "user-agent" = "Go-http-client/2.0"
2021/07/08 23:31:17 http2: Framer 0xc00027c7e0: wrote HEADERS flags=END_HEADERS stream=13 len=12
2021/07/08 23:31:17 http2: Framer 0xc00027c7e0: wrote DATA flags=END_STREAM stream=13 len=576 data="include_locale=true&token=XXXXX&users=UXXXX%2CUXXXXX%2CU..." (320 bytes omitted)
2021/07/08 23:31:17 http2: Framer 0xc00027c7e0: read WINDOW_UPDATE stream=13 len=4 incr=576
2021/07/08 23:31:17 http2: Transport received WINDOW_UPDATE stream=13 len=4 incr=576
2021/07/08 23:31:17 http2: Framer 0xc00027c7e0: read WINDOW_UPDATE len=4 (conn) incr=576
2021/07/08 23:31:17 http2: Transport received WINDOW_UPDATE len=4 (conn) incr=576
2021/07/08 23:31:17 http2: Framer 0xc00027c7e0: read HEADERS flags=END_HEADERS stream=13 len=1040
2021/07/08 23:31:17 http2: decoded hpack field header field ":status" = "200"
2021/07/08 23:31:17 http2: decoded hpack field header field "date" = "Thu, 08 Jul 2021 21:31:17 GMT"
2021/07/08 23:31:17 http2: decoded hpack field header field "server" = "Apache"
2021/07/08 23:31:17 http2: decoded hpack field header field "x-xss-protection" = "0"
2021/07/08 23:31:17 http2: decoded hpack field header field "pragma" = "no-cache"
2021/07/08 23:31:17 http2: decoded hpack field header field "cache-control" = "private, no-cache, no-store, must-revalidate"
2021/07/08 23:31:17 http2: decoded hpack field header field "access-control-allow-origin" = "*"
2021/07/08 23:31:17 http2: decoded hpack field header field "strict-transport-security" = "max-age=31536000; includeSubDomains; preload"
2021/07/08 23:31:17 http2: decoded hpack field header field "x-slack-req-id" = "xxxxxxxxxxx"
2021/07/08 23:31:17 http2: decoded hpack field header field "x-content-type-options" = "nosniff"
2021/07/08 23:31:17 http2: decoded hpack field header field "referrer-policy" = "no-referrer"
2021/07/08 23:31:17 http2: decoded hpack field header field "access-control-expose-headers" = "x-slack-req-id, retry-after"
2021/07/08 23:31:17 http2: decoded hpack field header field "x-slack-backend" = "r"
2021/07/08 23:31:17 http2: decoded hpack field header field "x-oauth-scopes" = "read,client,identify,post,apps"
2021/07/08 23:31:17 http2: decoded hpack field header field "x-accepted-oauth-scopes" = "users:read,read"
2021/07/08 23:31:17 http2: decoded hpack field header field "expires" = "Mon, 26 Jul 1997 05:00:00 GMT"
2021/07/08 23:31:17 http2: decoded hpack field header field "vary" = "Accept-Encoding"
2021/07/08 23:31:17 http2: decoded hpack field header field "access-control-allow-headers" = "slack-route, x-slack-version-ts, x-b3-traceid, x-b3-spanid, x-b3-parentspanid, x-b3-sampled, x-b3-flags"
2021/07/08 23:31:17 http2: decoded hpack field header field "content-encoding" = "gzip"
2021/07/08 23:31:17 http2: decoded hpack field header field "content-length" = "53"
2021/07/08 23:31:17 http2: decoded hpack field header field "content-type" = "application/json; charset=utf-8"
2021/07/08 23:31:17 http2: decoded hpack field header field "x-envoy-upstream-service-time" = "15"
2021/07/08 23:31:17 http2: decoded hpack field header field "x-backend" = "main_normal main_bedrock_normal_with_overflow main_canary_with_overflow main_bedrock_canary_with_overflow main_control_with_overflow main_bedrock_control_with_overflow"
2021/07/08 23:31:17 http2: decoded hpack field header field "x-server" = "slack-www-hhvm-main-iad-e7qm"
2021/07/08 23:31:17 http2: decoded hpack field header field "x-via" = "envoy-www-iad-vgrg, haproxy-edge-fra-i1bb"
2021/07/08 23:31:17 http2: decoded hpack field header field "x-slack-shared-secret-outcome" = "shared-secret"
2021/07/08 23:31:17 http2: decoded hpack field header field "via" = "envoy-www-iad-vgrg"
2021/07/08 23:31:17 http2: Transport received HEADERS flags=END_HEADERS stream=13 len=1040
2021/07/08 23:31:17 http2: Framer 0xc00027c7e0: read DATA stream=13 len=53 data="\x1f\x8b\b\x00\x00\x00\x00\x00\x00\x03\xabV\xca\xcfV\xb2JK\xcc)N\xd5QJ-*\xca/R\xb2R\xca\xcc+I-\xcaK̉\x87\b\xd4\x02\x00U\xae\xe4\xbf%\x00\x00\x00"
2021/07/08 23:31:17 http2: Transport received DATA stream=13 len=53 data="\x1f\x8b\b\x00\x00\x00\x00\x00\x00\x03\xabV\xca\xcfV\xb2JK\xcc)N\xd5QJ-*\xca/R\xb2R\xca\xcc+I-\xcaK̉\x87\b\xd4\x02\x00U\xae\xe4\xbf%\x00\x00\x00"
2021/07/08 23:31:17 http2: Framer 0xc00027c7e0: read DATA flags=END_STREAM stream=13 len=0 data=""
2021/07/08 23:31:17 http2: Transport received DATA flags=END_STREAM stream=13 len=0 data=""
[2021-07-08T23:31:17+02:00] WARN ircslack: Sending ERR_UNKNOWNERROR (400) to client with message: Failed to fetch users in channel `general (channel ID: XXXXXX): Failed to fetch users by their IDs: internal_error
[2021-07-08T23:31:17+02:00] DEBUG [github.com/sirupsen/logrus.(*Entry).Debugf][entry.go][347] ircslack: Sending numeric reply: :localhost 400 xxxxxx :Failed to fetch users in channel `general (channel ID: XXXXXX): Failed to fetch users by their IDs: internal_error
[2021-07-08T23:31:17+02:00] WARN ircslack: Cannot connect to Slack: Failed to fetch users in channel `general (channel ID: XXXXXX): Failed to fetch users by their IDs: internal_error
[2021-07-08T23:31:17+02:00] WARN ircslack: Error handling connection from 127.0.0.1:59052: read tcp 127.0.0.1:6666->127.0.0.1:59052: use of closed network connection
Here is the data in plain text:
% echo "\x1f\x8b\b\x00\x00\x00\x00\x00\x00\x03\xabV\xca\xcfV\xb2JK\xcc)N\xd5QJ-*\xca/R\xb2R\xca\xcc+I-\xcaK<0309>\x87\b\xd4\x02\x00U\xae\xe4\xbf%\x00\x00\x00" | gunzip | hexdump -C
gzip: stdin: unexpected end of file
00000000 7b 22 6f 6b 22 3a 66 61 6c 73 65 2c 22 65 72 72 |{"ok":false,"err|
00000010 6f 72 22 3a 22 69 6e 74 65 72 6e 61 6c 5f 65 72 |or":"internal_er|
00000020 72 6f 72 22 7d |ror"}|
00000025
Reducing the number of users fetched at the same time to 30 seems to work fine. Bigger chunk sizes return the internal error always.
from irc-slack.
Related Issues (20)
- Reply with RPL_NOTOPIC if no topic is set
- Use slacks 'away' flag when loading slack users HOT 4
- My own messages are shown twice HOT 8
- Getting Connection Timeout Trying to Setup new Connection HOT 9
- Handle certain JOIN failures
- Handle user change event and show nick change if relevant
- App on slack.efi.re throws 502 error HOT 3
- Add feature matrix on README
- Fix `cannot create nick "" for channel "+chan-12345"`
- Messages posted to threads show up in 1-on-1 channels HOT 8
- Clean up resources after disconnecting from a team
- Support threads to self
- Send IM thread to a thread channel
- Support sending messages in thread and multiparty IMs HOT 1
- irc-slack + znc constantly adding new channels HOT 1
- irc-slack 'reactions' being sent to the wrong channels HOT 1
- Only one private channel working. Other channels sent to <unknown-channel> HOT 1
- Members of private channels and threads not shown HOT 1
- cannot connect anymore since 2023-09-18 HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from irc-slack.