always use transient IOLoop for run_sync