Skip to content
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

Price change causing orchestrator swaps #2996

Closed
eliteprox opened this issue Apr 3, 2024 · 1 comment
Closed

Price change causing orchestrator swaps #2996

eliteprox opened this issue Apr 3, 2024 · 1 comment
Labels
status: triage this issue has not been evaluated yet

Comments

@eliteprox
Copy link
Contributor

eliteprox commented Apr 3, 2024

Describe the bug

There seems to be at least anecdotal evidence that adjusting price may be causing sessions to swap orchestrators. It is related to #2892 which returns an error during a segment if the price changes:

iPrice, err := common.RatPriceInfo(sess.InitialPrice)
if err == nil && iPrice != nil && oPrice.Cmp(iPrice) == 1 {
return fmt.Errorf("Orchestrator price has changed, Orchestrator price: %v, Orchestrator initial price: %v", oPrice, iPrice)
}

Currently the broadcaster stores the initial price for the session in the BroadcastSession.InitialPrice field to validate against price changes every segment.

InitialPrice *net.PriceInfo

The original approach is to ensure the broadcaster gets the original price for the stream by it's manifestid, but it seems some orchestrator info requests may not be within the context of a broadcast session, allowing new prices to slip through and cause unnecessary swapping.

To Reproduce
Steps to reproduce the behavior:

  1. Run livepeer_cli on orchestrator in production with active streams
  2. Use option 20:
    • eth addr = default
    • method = Wei
    • price per unit = any new price
    • pixels per unit = 1
  3. Wait about 15 - 45 minutes and streams will drop, usually all of them.

Expected behavior
Pricing should remain the same for the entire session between broadcaster and orchestrator. Orchestrator price changes should only be used by new sessions.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Ubuntu Linux 22.04
  • Version 0.7.3

Smartphone (please complete the following information):

Additional context
No errors seen on the orchestrator side. Broadcaster might be logging the price change based on the code linked above, but I have not been able to reproduce it in my own tests with a single B/O/T

@github-actions github-actions bot added the status: triage this issue has not been evaluated yet label Apr 3, 2024
@eliteprox
Copy link
Contributor Author

This has been addressed in #2995. Closing issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status: triage this issue has not been evaluated yet
Projects
None yet
Development

No branches or pull requests

1 participant