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

BlockingSwitchOutError: Impossible to call blocking function in the event loop callback #18

Open
crwallace opened this issue Oct 13, 2017 · 0 comments
Assignees

Comments

@crwallace
Copy link

https://sentry.io/colorofchange/callpower-ug/issues/335189211/

BlockingSwitchOutError: Impossible to call blocking function in the event loop callback
(5 additional frame(s) were not displayed)
...
  File "rq_scheduler/scheduler.py", line 344, in run
    time.sleep(self._interval)
  File "gevent/hub.py", line 194, in sleep
    hub.wait(loop.timer(seconds, ref=ref))
  File "gevent/hub.py", line 627, in wait
    result = waiter.get()
  File "gevent/hub.py", line 875, in get
    return self.hub.switch()
  File "gevent/hub.py", line 606, in switch
    return greenlet.switch(self)

BlockingSwitchOutError: Impossible to call blocking function in the event loop callback
bshyong pushed a commit that referenced this issue Aug 23, 2018
bshyong pushed a commit that referenced this issue Aug 23, 2018
Run loadpoliticaldata before bringing up production server.
bshyong added a commit that referenced this issue Aug 24, 2018
* Use sentry in production w/o heroku

* Update legislators-current.yaml

* update six version, per #18

* Normalize district padding before redis lookup

* Use 0 for at large districts

* Fix ternary syntax

* unicode formatted string names

* Hot fix for districts without current representatives, for OpenSourceActivismTech#39

* Compare strings by value, not identity

* Check against None for district (can be 0)

* ActionKit sync WIP

* Update CSP

* Site credit to OpenSourceActivism.tech

* Add EU countries and languages

* Update site credit

* remove links to sunlight

* Allow campaigns to make international calls

* EUDataProvider loads no stored data

* Return targeting in initial call/create json response

* allow_intl_calls display in campaign form

* Limit call/create target_response to campaign.call_maximum

* Direct integration readme

* explicitly allow wss in CSP

* Re-shuffle matched targets if campaign.include_special == only

* move us open data sources to OpenSourceActivismTech ownership

* TargetList collection sort numerically

* Blocked phone numbers display as e164

* Limit call/create requests to 1 / hour per phone number. Logged-in admins are exempt.

* Exempt admins from filter even if not logged in, by checking User models

* Ensure rate-limit responses are proper JSON

* increase rate-limit to 2/hr (in case first call gets disconnected)

* Statistics display error message if target_calls cannot load

* Bump twilio client for safari 11 webrtc support

* AudioRecording version selection also sets parent formGroup valid

* Bump version 1.3.8

* Improve campaign copy experience: enforce unique name (OpenSourceActivismTech#63), and link existing audio recordings (OpenSourceActivismTech#79)

* Store optional referral code on call session, expose via API

* Update governor data, match new column heading for state_abbr and name

* Update default CSP to include additional cloudflare, twilio, new relic domains

* Limit referral_code to 64 characters

* Display scheduled call stats on launch page

* set uwsgi http-timeout, to handle slow clients before heroku does

* readme update

* Bump version to 1.3.9

* document ref parameter on call /create

* Political data search ignore accented characters, which users may not know are included in source

* Scheduled call check subscription status in create_call job, in case database and rq are no longer in sync

* Improve target_calls performance

* Further simplify target_calls queries

* Campaign target_calls data fallback for custom targets

* Campaign statistics secondary sort on last name

* bump version 1.3.10

* Campaign phone number set field description

* crm sync use rq scheduler, to perform jobs by crontab

* Manual sync job schedule

* Update CRM campaign meta with completed call count

* Bump version number 1.4.beta-1

* Admin ability to list scheduled calls, and delete them on request

* schedule routes login required

* Campaign audio validate presence of text-to-speech before save

* Manager command to bulk cancel scheduled calls before a specific date

* gevent-psycopg deprecated, won’t install any longer. switch to psycogreen

* CRM sync meta to actionkit requires use of XMLRPC api

* Cross-origin headers for external blueprints with flask-cors

* Update political data (Chaffetz -> Curtis, Becerra -> Gomez)

* update us_districts

* Fix date comparison in dashboard

* Simplify call-in zipcode validation

* Retry zipcode->latlon geocode if local cache lookup didn’t have it

* Catch empty string before sending to geocoder

* CSP img-src, not image-src

* Political data update: Trent Franks and John Conyers resigned

* Pass scheduled param in rq.job to create call

* New AL, MN senators

* District office data cleanup by @arrighik

* Run loadpoliticaldata before bringing up production server.

* Add location field for target, so we can read it in msg_target_intro

* Shuffle campaign targets within chamber, defaults to True for US Senate

* Normalize state name/abbr for US Governors

* Remove complex handlebars syntax from msg defaults

* More compelling schedule glyphicons

* Update python runtime, psycopg2

* Launch campaign order more descriptive

* Campaign target_display include location, if available

* Fast-forward CRMSync alembic migration

* CRM Sync overview doc

* Release 1.4.0

* readme link

* Custom target hide null location

* Wrap target.location display in parentheses

* Trigger focusout to fix placeholder display

* set target default location to DC for US Congress campaigns for 202 numbers

* Fix default location for search results

* US governors update

* Fix typo

* Adjust special_targets matching to use string startswith, to include district offices

* ditto

* Same, but maintain ordering by using lists instead of sets

* US Executive connect to Whitehouse switchboard instead of comment line

* Historical political data update

* US political data, add testing zips in AZ NY

* District office phone number check more robust

* Add note about ADMIN_API_KEY environment variable

* Improve local template debugging by removing jinja cache when using runserver

* Improve overlay modal, OpenSourceActivismTech#82

* Embed 429 handler, for OpenSourceActivismTech#93

* Embed integration options

* For OpenSourceActivismTech#93 use alert instead of onError, because we actually want to inform the person.

* Enable optional frontend error tracking with Sentry

* Update US political data (Sen Tiberi resigned)

* Improve handling of locally cached zipcodes to geocoder

* Campaign target ordering place Special first if matches user location
Rename Campaign.constants, use in tests, migrate data

* Fix broken OpenStates test

* remove missing zipcode tests, now that geocoder is hooked up it may provide a response

* Bump version

* Doug Jones offices, for unitedstates/congress-legislators#548

* Improve and document rate limit

* US State governor data adapter fixes

* Validate mime type of audio upload

* Fix whitespace

* Save audio files w/ correct extesnion

* Use libmagic to detect audio file type

* Migrate from gevent-psycopg to psycogreen

pip now requires that packages be downloaded over HTTPS. Installing
gevent-psycopg triggers a download over HTTP. The recommended solution to the
HTTP problem is to upgrade to the newest version of the offending package.
gevent-psycopg is deprecated in favor or psycogreen, so I'm migrating to that
instead.

I'm not sure what we're using this for :(

* Remove unneeded imports

* Use FileStorage.mimetype consistently

* Keep original extension of uploaded file

* Target data adapters fallback, display openstates legislator district number

* US political data update

* Include office_type as ‘district’ or ‘constituency’

* disable app-wide ADMIN_PHONES_LIST when testing

* Update political data

* improve ScheduledCall searching, sending, blocking

* Inline schedule edit

* Scheduled call blocklist fixes

* Enable alter prompt for scheduled calls, Skip scheduling if we create new subscription

* ScheduleCall logging

* resolve flask_login warning

* release 1.4.2

* Fix TargetOffice name/location attributes

* improve Target and TargetOffice database caching semantics

* For OpenStates legislator offices, remove “office” and “#1” from name

* Ensure custom targets have phone number before we try to connect with them

* Location repr and attr improvements

* If one call fails, move on to next instead of hanging up

* Explicitly skip duplicating scheduled call subscriptions when copying existing campaigns

* scheduleSkip param now must be truthy, to avoid loop

* Simple approach to OpenSourceActivismTech#95, adds party prioritization to campaign target_order choices

* Manager command to reset scheduled jobs, in case redis is cleared.

* limit scheduled_call reset and outgoing calls to live campaigns, unset jobs when pausing or archiving

* Bump version number

* Fix str comparison, some offices in political_data have unicode values

* Fix data_cache logging

* Allow audio/mpeg file mimetype, not just audio/mp3

* bump version
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants