-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Immediate adapter response may end auction #1603
Comments
@github-nilsson |
The adapter we are developing can return a response right away in some cases, so this caused a few days of mysterious lowered revenue. But then again, now that we've run into that mine we know how to work around it. |
@jaiminpanchal27 |
Just hit the same issue in 0.30.1. The first result forbids the next auction to be sent:
Here you can see that error returned by rubicon (no ad) will stop the auction, even if there's another bidder (appnexus) to wait for (timeout is set to 2000ms). Really needs an urgent fix :-( Edit: reformatted the example. It seems that one adUnit will impact the other. With only one adUnit, there's no issue. |
No same thing with only one adUnit:
|
0.27.1 is not impacted, didn't test any other (a lot of issues since then). |
Are you sure 0.27.1 isn't impacted? You would only get this bug if the synchronously responding adapter is called before any other. Since randomization of adapter order wasn't on by default then it would be easy to avoid the issue by having an always asynchronous adapter first in the list. |
My bad, seems to have the exact same issue. It's by providing a bad |
@dugwood can you share test page ? |
So just to be clear, 0x0 isn't necessarily a 'bad' size, but it's not one that Rubicon Project currently knows what to do with, so we just immediately decline the auction (i.e. return "false" from isBidRequestValid). |
@bretg yes it's just my debug. I've sent by error the |
@jaiminpanchal27 it will be difficult to set a test page, as it means creating an error on a production page... I only test on local VM. Will you be able to reproduce with the wrong |
You don't need a production page to demonstrate the bug, as it never connects to any server. You should be able to trigger this by giving a non-numeric accountId in the adapter params to rubicon adapter. |
Type of issue
Robustness problem with bid response API.
Description
Immediate calls to
bidmanager.addBidResponse
may cause the auction to end. Since the same loop is used to call adapters and add requests topbjs._bidsRequested
, an immediate call tobidmanager.addBidResponse
can cause the bidsBackAll to believe the auction has ended.Steps to reproduce
Have the first adapter respond to all bid request by immediately calling
bidmanager.addBidResponse
. The auction will immediately end and any responses from other adapters will be ignored.Solution
This can of course be fixed by asynchronously calling
bidmanager.addBidResponse
usingsetTimer
, but I would like to avoid these kind of API traps. I propose to have the current loop only updatepbjs._bidsRequested
and then iterate over that array for calling the adapters like the following.The text was updated successfully, but these errors were encountered: