Skip to content

Doubled-up messages on main branch #24

@folospior

Description

@folospior

Hi there!

After playing around with the main branch, I noticed that I get doubled-up messages after firing up a bot with grom.

Example (courtesy of @mine-tech-oficial)
Text("{\"t\":\"READY\",\"s\":1,\"op\":0,\"d\":{\"v\":10,\"user_settings\":{},\"user\":{\"verified\":true,\"username\":\"Bot 1on1\",\"primary_guild\":null,\"mfa_enabled\":true,\"id\":\"1476688243083710504\",\"global_name\":null,\"flags\":0,\"email\":null,\"discriminator\":\"7882\",\"clan\":null,\"bot\":true,\"avatar\":\"2e8af0545d2398ecdba94239e85e4c56\"},\"shard\":[0,1],\"session_type\":\"normal\",\"session_id\":\"2621d85f6aa45148aaa546630b97b534\",\"resume_gateway_url\":\"wss://gateway-us-east1-d.discord.gg\",\"relationships\":[],\"private_channels\":[],\"presences\":[],\"guilds\":[{\"unavailable\":true,\"id\":\"1219327642923438161\"},{\"unavailable\":true,\"id\":\"1470129807248326717\"}],\"guild_join_requests\":[],\"geo_ordered_rtc_regions\":[\"brazil\",\"buenos-aires\",\"santiago\",\"atlanta\",\"southafrica\"],\"game_relationships\":[],\"auth\":{},\"application\":{\"id\":\"1476688243083710504\",\"flags_new\":\"10518528\",\"flags\":10518528},\"_trace\":[\"[\\\"gateway-prd-arm-us-east1-d-9flb\\\",{\\\"micros\\\":357513,\\\"calls\\\":[\\\"id_created\\\",{\\\"micros\\\":1607,\\\"calls\\\":[]},\\\"session_lookup_time\\\",{\\\"micros\\\":327,\\\"calls\\\":[]},\\\"session_lookup_finished\\\",{\\\"micros\\\":12,\\\"calls\\\":[]},\\\"sessions-prd-gcp-us-east1-d-116\\\",{\\\"micros\\\":355052,\\\"calls\\\":[\\\"start_session\\\",{\\\"micros\\\":301116,\\\"calls\\\":[\\\"prd-rpc-664d567fd9-xlrlx\\\",{\\\"micros\\\":69831,\\\"calls\\\":[\\\"get_user\\\",{\\\"micros\\\":10887},\\\"get_guilds\\\",{\\\"micros\\\":3605},\\\"send_scheduled_deletion_message\\\",{\\\"micros\\\":17},\\\"guild_join_requests\\\",{\\\"micros\\\":3516},\\\"authorized_ip_coro\\\",{\\\"micros\\\":15},\\\"pending_payments\\\",{\\\"micros\\\":25558},\\\"apex_experiments\\\",{\\\"micros\\\":181415},\\\"sessions_experiments\\\",{\\\"micros\\\":5},\\\"played_application_ids\\\",{\\\"micros\\\":3},\\\"linked_users\\\",{\\\"micros\\\":4},\\\"ad_personalization_toggles_disabled\\\",{\\\"micros\\\":3},\\\"regional_feature_config\\\",{\\\"micros\\\":2}]}]},\\\"starting_guild_connect\\\",{\\\"micros\\\":38,\\\"calls\\\":[]},\\\"presence_started\\\",{\\\"micros\\\":371,\\\"calls\\\":[]},\\\"guilds_started\\\",{\\\"micros\\\":84,\\\"calls\\\":[]},\\\"lobbies_started\\\",{\\\"micros\\\":1,\\\"calls\\\":[]},\\\"guilds_connect\\\",{\\\"micros\\\":1,\\\"calls\\\":[]},\\\"presence_connect\\\",{\\\"micros\\\":53411,\\\"calls\\\":[]},\\\"connect_finished\\\",{\\\"micros\\\":53424,\\\"calls\\\":[]},\\\"build_ready\\\",{\\\"micros\\\":14,\\\"calls\\\":[]},\\\"clean_ready\\\",{\\\"micros\\\":2,\\\"calls\\\":[]},\\\"optimize_ready\\\",{\\\"micros\\\":1,\\\"calls\\\":[]},\\\"split_ready\\\",{\\\"micros\\\":0,\\\"calls\\\":[]}]}]}]\"]}}")
src/one_on_one.gleam:112
ReadyEvent(ReadyMessage(10, User("1476688243083710504", "Bot 1on1", "7882", None, Some("2e8af0545d2398ecdba94239e85e4c56"), Some(True), None, Some(True), None, None, None, Some([]), None, None, None, None, None), [UnavailableGuild("1219327642923438161", True), UnavailableGuild("1470129807248326717", True)], "2621d85f6aa45148aaa546630b97b534", "wss://gateway-us-east1-d.discord.gg", Some(Shard(0, 1)), ReadyApplication("1476688243083710504", [GatewayGuildMembersLimited, ApplicationCommandBadge])))
src/grom/gateway.gleam:2982
Text("{\"t\":null,\"s\":null,\"op\":10,\"d\":{\"heartbeat_interval\":41250,\"_trace\":[\"[\\\"gateway-prd-arm-us-east1-d-7m7d\\\",{\\\"micros\\\":0.0}]\"]}}")
src/grom/gateway.gleam:2982
Text("{\"t\":null,\"s\":null,\"op\":10,\"d\":{\"heartbeat_interval\":41250,\"_trace\":[\"[\\\"gateway-prd-arm-us-east1-d-7m7d\\\",{\\\"micros\\\":0.0}]\"]}}")
src/grom/gateway.gleam:2982
User(StartSendResume(ResumingInfo(Subject(//erl(<0.187.0>), //erl(#Ref<0.1581419265.1083703297.103458>)), Some(1), "wss://gateway-us-east1-d.discord.gg", "2621d85f6aa45148aaa546630b97b534")))
src/grom/gateway.gleam:2982
Text("{\"t\":null,\"s\":null,\"op\":9,\"d\":false}")
src/grom/gateway.gleam:2982
Text("{\"t\":null,\"s\":null,\"op\":10,\"d\":{\"heartbeat_interval\":41250,\"_trace\":[\"[\\\"gateway-prd-arm-us-east1-d-4pll\\\",{\\\"micros\\\":0.0}]\"]}}")
src/grom/gateway.gleam:2982
Text("{\"t\":null,\"s\":null,\"op\":10,\"d\":{\"heartbeat_interval\":41250,\"_trace\":[\"[\\\"gateway-prd-arm-us-east1-d-4pll\\\",{\\\"micros\\\":0.0}]\"]}}")
src/grom/gateway.gleam:2982
User(StartIdentify(Welcomed(Request(Get, [], "", Https, "gateway.discord.gg", None, "", Some("v=10&encoding=json")), Subject(//erl(<0.129.0>), //erl(#Ref<0.1581419265.1083703297.102366>)), Subject(//erl(<0.126.0>), //erl(#Ref<0.1581419265.1083703297.102326>)), IdentifyMessage(Shard(0, 1), "[BOT_TOKEN]", IdentifyProperties("linux", "grom", "grom"), False, None, None, [GuildMembers]), Subject(//erl(<0.198.0>), //erl(#Ref<0.1581419265.1083703297.103663>)), None)))
src/grom/gateway.gleam:2982
User(StartIdentify(Welcomed(Request(Get, [], "", Https, "gateway.discord.gg", None, "", Some("v=10&encoding=json")), Subject(//erl(<0.129.0>), //erl(#Ref<0.1581419265.1083703297.102366>)), Subject(//erl(<0.126.0>), //erl(#Ref<0.1581419265.1083703297.102326>)), IdentifyMessage(Shard(0, 1), "[BOT_TOKEN]", IdentifyProperties("linux", "grom", "grom"), False, None, None, [GuildMembers]), Subject(//erl(<0.199.0>), //erl(#Ref<0.1581419265.1083703297.103670>)), None)))

I think this issue has something to do with ef1bd78#diff-0775be909a08bdb1ee40e80d908e65b208791970534304715363d189c870f762L354-L380. It seems the buffer doesn't get cleared out in actor.continue.

One thing that's weird about this bug is that it only seems to happen sometimes, which might suggest another race condition.

I'll try to post a minimal example soon

Cheers!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions