jessepollak / jessepollak/mixpanel-python-async

Some events are being dropped

Open
#14 4 comments 2 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
62
Forks
16
PR merge metrics
No merged PRs in 30d

Description

I am using the lib for a project of mine, and I noticed some events are being dropped. I added printing calls to the official Mixpanel lib (that MPA uses) and used the following code:

```
mp.track(str(request.user.pk), "changed settings")
mp.people_set(str(user.pk), {
"$email": user.email,
"$name": user.name,
"$ip": request.META.get('HTTP_X_FORWARDED_FOR', request.META.get('REMOTE_ADDR')).split(',')[-1].strip(),
"username": user.username,
})
mp.track(str(request.user.pk), "changed settings 2")
```

What came out was:

```
web_1 | {'data': b'[{"properties":{"distinct_id":"21","token":"decoded this from base64 to redact the token","time":1508248513,"$lib_version":"4.3.2","mp_lib":"python"},"event":"changed settings"}]'
, 'verbose': 1, 'ip': 0}
web_1 | 172.26.0.5 - - [17/Oct/2017 13:55:13] "POST /settings/ HTTP/1.1" 302 -
```

And that's it. Even after minutes, nothing else is sent. I'm using `runserver_plus` to run this, but it also happens on production with uWSGI. You will notice that only the first event got sent, and all subsequent events are lost.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by tracing the mp.track and mp.people_set calls in the reported sequence, comparing the first event with the later calls. Reproduce it under runserver_plus and uWSGI, then verify that subsequent events are sent rather than lost.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.