HTTPService Issue

1. Does the bug happen 100% of the time?

From what I can tell, yes.

2. If so, are there steps that reproduce the bug? Please list them in very high detail.

I currently run a script that communicates with my webserver. It sends data when a player chats, joins, dies, kills and every minute to log the amount of time they are in-game.

It appears, and this is a guess, that after it reaches the 500/min cap, it totally breaks everything else. It stopped loading all assets and meshes once it hits the 500 cap.

3. Where does the bug happen (www, gametest, etc)

Main website

4. Is it level-specific?

Not as far as I can tell.

  1. Would a screenshot or video help describe it to someone? If so, post one.
  2. For graphics bugs, it is sometimes helpful to know your system specs, especially graphics card.
    7. When did the bug start happening? If we can tie it to a specific release that helps us figure out what we broke.

Couldn’t say, it’s been doing it since I started using it (1/10/2014).

8. Anything else that you would want to know about the bug if it were your job to find and fix it.

If it isn’t due to reaching 500 requests, I’m not sure what is causing it to wonk out. The script doesn’t effect any gameplay elements and depends on itself. No other script in my game, the ones that break, depend on it in any way. They were NOT breaking before I implemented this, and directly after they were effected by meshes not loading and images not loading.

It appears as soon as data stops being sent, all things in the game break.

The cap if exceeded returns an error and exists to prevent malicious users from DDOSing a website.So, Stay under the cap and you will be fine.

Catch the error instead of leaving it out in the open.

xpcall, pcall and coroutines all are useful for that.

Executes all posts within coroutines. The problem here, which everyone seems to be missing, which may be my own fault, is…

The script doesn’t BREAK, but it appears that when you hit 500, the actual servers stop accepting HTTP Requests, so meshes stop loading (No catches for that) and other things stop loading.

[quote] Executes all posts within coroutines. The problem here, which everyone seems to be missing, which may be my own fault, is…

The script doesn’t BREAK, but it appears that when you hit 500, the actual servers stop accepting HTTP Requests, so meshes stop loading (CANT PCALL THAT) and other crap stops loading. [/quote][strike]How are you even hitting more than 500 requests a minute anyway?[/strike] Nevermind, saw OP.

Why not queue it for the next minute if the amount of requests reaches 499? It may lag the requests a bit - but it’ll prevent it happening.

Honestly, I don’t think I am. I think it’s something else. The only thing I could figure was it had to do with reaching some sort of limit.

Like I said, I put the script in, it runs and after an amount of time stuff just starts breaking. The script itself doesn’t effect anything else in the game and only sends/recieves Http requests.

I disable the script, nothing breaks. Not sure WHAT is breaking it, but something is. 500/min was the only thing I could think of to cause it.

** EDIT - The script sends a HTTPRequest with time_spent every one minute, max of 30 players; so 30/minute baseline + chats, and deaths. I am doubtful that 470+ requests are made within a minute based on deaths and chats.

[quote] Executes all posts within coroutines. The problem here, which everyone seems to be missing, which may be my own fault, is…

The script doesn’t BREAK, but it appears that when you hit 500, the actual servers stop accepting HTTP Requests, so meshes stop loading (CANT PCALL THAT) and other crap stops loading. [/quote]
Umm, How can HttpService cap prevent Meshs from loading I have been in servers where cap was hit on purpose to test effects and it didn’t prevent asset loading.
So, It’s something you’re doing.

No, definitely not on my side. Don’t ask me how it would prevent, it just did. I’ll run a few more tests, and see what else could cause it, but, like I said, everything works FINE until the HttpRequests start being sent. The script effects nothing directly and after SOMETHING happens, all mesh and image requests stop returning.

Tested it http://www.roblox.com/Toshir0z-Sandbox-place?id=88321736
Yep, The 500 cap does affect stuff when hit…

The script I used to test it.

HttpService = game:getService("HttpService")

game:getService("RunService").Stepped:connect(function()
	coroutine.resume(coroutine.create(function()
		HttpService:GetAsync("http://127.0.0.1",true)
	end)
end)

Tested it http://www.roblox.com/Toshir0z-Sandbox-place?id=88321736
Yep, The 500 cap does affect stuff when hit…[/quote]

Thanks for putting time in to test it, man. Also, my apologies for initial hostility, been a bit irritated all day trying to debug this, took it out on text rage.

Hopefully an admin will see this soon and take a look at it. Glad somebody else could produce the same bug.

Cheers.

Yeah, even if you don’t hit 500 request’s the whole server stops loading, meshes and decals, eveything is just grey O_e

I don’t get your problem… Just plan out how often and what will get posted. Have it organised, and do calculations so it doesn’t exceed the request. Send big packets rather than small and many. You just need a proper system.

When I had the, “Proper System” packets with 3-4 requests would get dropped because of the size of it. After a certain amount of data it either doesn’t sent, can’t send, or doesn’t get to its destination.

When I had the, “Proper System” packets with 3-4 requests would get dropped because of the size of it. After a certain amount of data it either doesn’t sent, can’t send, or doesn’t get to its destination.[/quote]

Hmm weird… It is not docummented. Only restrictions:

Either you were doing something wrong, or roblox is hiding something from us again.

Can you compile all the information into one packet, and send one request?

He already said, that it made too many packets to drop. But can HTTP packets even get dropped? I thought they’d get resent if it’s corrupted or dropped, like TCP.