Closed kittinan closed 2 months ago
Very strange. The specific problem is a channel was set up to use the build-id
filter, but no id_format
value was found in the metadata at a time when the filter was applied. django-eventstream sets up that filter here, and it looks like it's impossible for the build-id
filter to be specified without id_format
also being provided. So it's not obvious to me how this happens.
One idea is the initial responses set up the filter, but later responses for the same connections don't, and Pushpin doesn't like this. I could imagine this happening if storage configuration was removed while clients were connected, but I suspect that's not what's going on here especially if it's repeatable. Or maybe you have multiple Django app instances and not all of them have storage enabled. It would be interesting to see the Grip-Channel
headers of responses from the Django app, to see if they inconsistently include param filter=build-id
.
Thanks for the advice, it gives me more clues to investigate the bug.
My team found the bug. The problem is django-grip does not set the Grip-Set-Meta
header when instruct is not hold
https://github.com/fanout/django-grip/blob/master/django_grip.py#L388-L399.
more = True
https://github.com/fanout/django-eventstream/blob/master/django_eventstream/eventresponse.py#L96-L97 it is not set hold stream.Grip-Set-Meta
header when instruct not hold https://github.com/fanout/django-grip/blob/f176c9b7c625acfa7f0a0cf51981f9a61cf6a0f1/django_grip.py#L388-L399I created PR in django-grip to fix this. https://github.com/fanout/django-grip/pull/20
Thanks for finding this. I've posted a new version of django-grip.
I load test my SSE Application and i got the error
error: build-id: no sub meta
. it happens when there is high load traffic.Could you please explain to me what could be causing this?