Initializing Canvas using configuration in /Users/kgarner/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.2ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction CanvasOauth::Authorization Load (0.1ms) SELECT "canvas_oauth_authorizations".* FROM "canvas_oauth_authorizations" WHERE "canvas_oauth_authorizations"."canvas_user_id" = 123 AND "canvas_oauth_authorizations"."tool_consumer_instance_guid" = 'abc123' ORDER BY created_at DESC LIMIT 1 SQLite3::SQLException: no such table: canvas_oauth_authorizations: SELECT "canvas_oauth_authorizations".* FROM "canvas_oauth_authorizations" WHERE "canvas_oauth_authorizations"."canvas_user_id" = 123 AND "canvas_oauth_authorizations"."tool_consumer_instance_guid" = 'abc123' ORDER BY created_at DESC LIMIT 1  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Rendered text template (0.0ms) Completed 200 OK in 4ms (Views: 3.9ms | ActiveRecord: 0.0ms)  (0.1ms) rollback transaction  (0.0ms) begin transaction CanvasOauth::Authorization Load (0.1ms) SELECT "canvas_oauth_authorizations".* FROM "canvas_oauth_authorizations" WHERE "canvas_oauth_authorizations"."canvas_user_id" IS NULL AND "canvas_oauth_authorizations"."tool_consumer_instance_guid" IS NULL ORDER BY created_at DESC LIMIT 1 SQLite3::SQLException: no such table: canvas_oauth_authorizations: SELECT "canvas_oauth_authorizations".* FROM "canvas_oauth_authorizations" WHERE "canvas_oauth_authorizations"."canvas_user_id" IS NULL AND "canvas_oauth_authorizations"."tool_consumer_instance_guid" IS NULL ORDER BY created_at DESC LIMIT 1  (0.0ms) rollback transaction  (0.0ms) begin transaction CanvasOauth::Authorization Load (0.1ms) SELECT "canvas_oauth_authorizations".* FROM "canvas_oauth_authorizations" WHERE "canvas_oauth_authorizations"."canvas_user_id" IS NULL AND "canvas_oauth_authorizations"."tool_consumer_instance_guid" IS NULL ORDER BY created_at DESC LIMIT 1 SQLite3::SQLException: no such table: canvas_oauth_authorizations: SELECT "canvas_oauth_authorizations".* FROM "canvas_oauth_authorizations" WHERE "canvas_oauth_authorizations"."canvas_user_id" IS NULL AND "canvas_oauth_authorizations"."tool_consumer_instance_guid" IS NULL ORDER BY created_at DESC LIMIT 1  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid"} Completed 200 OK in 0ms (Views: 0.1ms | ActiveRecord: 0.0ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid", "state"=>"zzyyxx"} Completed 200 OK in 0ms (Views: 0.1ms | ActiveRecord: 0.0ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction CanvasOauth::Authorization Load (0.1ms) SELECT "canvas_oauth_authorizations".* FROM "canvas_oauth_authorizations" WHERE "canvas_oauth_authorizations"."canvas_user_id" IS NULL AND "canvas_oauth_authorizations"."tool_consumer_instance_guid" IS NULL ORDER BY created_at DESC LIMIT 1 SQLite3::SQLException: no such table: canvas_oauth_authorizations: SELECT "canvas_oauth_authorizations".* FROM "canvas_oauth_authorizations" WHERE "canvas_oauth_authorizations"."canvas_user_id" IS NULL AND "canvas_oauth_authorizations"."tool_consumer_instance_guid" IS NULL ORDER BY created_at DESC LIMIT 1  (0.0ms) rollback transaction  (0.0ms) begin transaction CanvasOauth::Authorization Load (0.1ms) SELECT "canvas_oauth_authorizations".* FROM "canvas_oauth_authorizations" WHERE "canvas_oauth_authorizations"."canvas_user_id" IS NULL AND "canvas_oauth_authorizations"."tool_consumer_instance_guid" IS NULL ORDER BY created_at DESC LIMIT 1 SQLite3::SQLException: no such table: canvas_oauth_authorizations: SELECT "canvas_oauth_authorizations".* FROM "canvas_oauth_authorizations" WHERE "canvas_oauth_authorizations"."canvas_user_id" IS NULL AND "canvas_oauth_authorizations"."tool_consumer_instance_guid" IS NULL ORDER BY created_at DESC LIMIT 1  (0.0ms) rollback transaction  (0.0ms) begin transaction CanvasOauth::Authorization Load (0.1ms) SELECT "canvas_oauth_authorizations".* FROM "canvas_oauth_authorizations" WHERE "canvas_oauth_authorizations"."canvas_user_id" IS NULL AND "canvas_oauth_authorizations"."tool_consumer_instance_guid" IS NULL ORDER BY created_at DESC LIMIT 1 SQLite3::SQLException: no such table: canvas_oauth_authorizations: SELECT "canvas_oauth_authorizations".* FROM "canvas_oauth_authorizations" WHERE "canvas_oauth_authorizations"."canvas_user_id" IS NULL AND "canvas_oauth_authorizations"."tool_consumer_instance_guid" IS NULL ORDER BY created_at DESC LIMIT 1  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction API call (0.03ms): put ["/api/v1/courses/1/assignments/2/submissions/3", {:body=>{}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.04ms): get ["/path", {:query=>"stuff", :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.05ms): get ["/path", {:headers=>{}}]  (0.1ms) rollback transaction  (0.0ms) begin transaction API call (0.02ms): get ["/path", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.08ms): get ["/api/v1/courses", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.02ms): get ["/api/v1/courses/123/students", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.02ms): get ["/api/v1/courses/123/sections", {:query=>{:include=>["students", "avatar_url", "enrollments"], :per_page=>50}, :headers=>{}}]  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.02ms): get ["/api/v1/users/123/profile", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.02ms): get ["/api/v1/accounts/1/courses", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.04ms): get ["/api/v1/accounts/1/users", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction API call (0.02ms): get ["/api/v1/courses/123/assignments", {:query=>{:per_page=>50}, :headers=>{}}]  (0.1ms) rollback transaction  (0.0ms) begin transaction API call (0.02ms): post ["/api/v1/courses/123/assignments", {:body=>{:assignment=>{:name=>"Assignment"}}, :headers=>{}}]  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.02ms): get ["/api/v1/courses/123", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.3ms) begin transaction  (0.1ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.2ms) begin transaction  (0.1ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.2ms) begin transaction  (0.1ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.2ms) begin transaction  (0.1ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.2ms) begin transaction  (0.1ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.2ms) begin transaction  (0.1ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.2ms) begin transaction  (0.1ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.2ms) begin transaction  (0.1ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.2ms) begin transaction  (0.0ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.2ms) begin transaction  (0.0ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.2ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.2ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.2ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.2ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/exempt/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.0ms) begin transaction API call (0.09ms): get ["/path", {:headers=>{}}]  (0.1ms) rollback transaction  (0.0ms) begin transaction API call (0.05ms): get ["/path", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.04ms): get ["/path", {:query=>"stuff", :headers=>{}}]  (0.0ms) rollback transaction  (0.1ms) begin transaction API call (0.03ms): get ["/api/v1/courses/123/sections", {:query=>{:include=>["students", "avatar_url", "enrollments"], :per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.08ms): get ["/api/v1/accounts/1/courses", {:query=>{:per_page=>50}, :headers=>{}}]  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): put ["/api/v1/courses/123/assignments/345", {:body=>{:assignment=>{:omit_from_final_grade=>true}}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/courses/123/assignments", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.07ms): post ["/api/v1/courses/123/assignments", {:body=>{:assignment=>{:name=>"Assignment"}}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/courses", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/users/123/profile", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/courses/123", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): put ["/api/v1/courses/1/assignments/2/submissions/3", {:body=>{}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.07ms): get ["/api/v1/courses/123/students", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction API call (0.12ms): get ["/api/v1/accounts/1/users", {:query=>{:per_page=>50}, :headers=>{}}]  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Rendering text template Rendered text template (0.0ms) Completed 200 OK in 3ms (Views: 3.1ms | ActiveRecord: 0.0ms)  (0.1ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid", "state"=>"zzyyxx"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 1ms (Views: 0.4ms | ActiveRecord: 0.0ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 0ms (Views: 0.3ms | ActiveRecord: 0.0ms)  (0.0ms) rollback transaction  (0.1ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid", "state"=>"mismatch"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 1ms (Views: 0.3ms | ActiveRecord: 0.0ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid", "state"=>"zzyyxx"} Completed 500 Internal Server Error in 2ms (ActiveRecord: 1.6ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"invalid"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 1ms (Views: 0.3ms | ActiveRecord: 0.0ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 1ms (Views: 0.3ms | ActiveRecord: 0.0ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid"} Completed 500 Internal Server Error in 1ms (ActiveRecord: 0.1ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/exempt/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.06ms): get ["/api/v1/courses", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): put ["/api/v1/courses/123/assignments/345", {:body=>{:assignment=>{:omit_from_final_grade=>true}}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/courses/123", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.09ms): post ["/api/v1/courses/123/assignments", {:body=>{:assignment=>{:name=>"Assignment"}}, :headers=>{}}]  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.04ms): get ["/api/v1/users/123/profile", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.2ms) rollback transaction  (0.1ms) begin transaction API call (0.09ms): get ["/api/v1/accounts/1/courses", {:query=>{:per_page=>50}, :headers=>{}}]  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction API call (0.12ms): get ["/path", {:headers=>{}}]  (0.2ms) rollback transaction  (0.0ms) begin transaction API call (0.05ms): get ["/path", {:query=>"stuff", :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.07ms): get ["/path", {:headers=>{}}]  (0.0ms) rollback transaction  (0.1ms) begin transaction API call (0.05ms): get ["/api/v1/accounts/1/users", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): put ["/api/v1/courses/1/assignments/2/submissions/3", {:body=>{}, :headers=>{}}]  (0.0ms) rollback transaction  (0.1ms) begin transaction API call (0.04ms): get ["/api/v1/courses/123/assignments", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.05ms): get ["/api/v1/courses/123/sections", {:query=>{:include=>["students", "avatar_url", "enrollments"], :per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/courses/123/students", {:query=>{:per_page=>50}, :headers=>{}}]  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/exempt/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid", "state"=>"zzyyxx"} Completed 500 Internal Server Error in 3ms (ActiveRecord: 1.9ms)  (0.1ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid", "state"=>"mismatch"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 5ms (Views: 4.9ms | ActiveRecord: 0.0ms)  (0.1ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Rendering text template Rendered text template (0.0ms) Completed 200 OK in 0ms (Views: 0.3ms | ActiveRecord: 0.0ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid", "state"=>"zzyyxx"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 0ms (Views: 0.2ms | ActiveRecord: 0.0ms)  (0.1ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 0ms (Views: 0.3ms | ActiveRecord: 0.0ms)  (0.1ms) rollback transaction  (0.1ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"invalid"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 1ms (Views: 0.6ms | ActiveRecord: 0.0ms)  (0.1ms) rollback transaction  (0.1ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 1ms (Views: 0.3ms | ActiveRecord: 0.0ms)  (0.1ms) rollback transaction  (0.1ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid"} Completed 500 Internal Server Error in 1ms (ActiveRecord: 0.1ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/courses/123/students", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/accounts/1/users", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/courses/123/assignments", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/courses", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/users/123/profile", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/courses/123", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): put ["/api/v1/courses/123/assignments/345", {:body=>{:assignment=>{:omit_from_final_grade=>true}}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.05ms): get ["/path", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/path", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/path", {:query=>"stuff", :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/courses/123/sections", {:query=>{:include=>["students", "avatar_url", "enrollments"], :per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.02ms): get ["/api/v1/accounts/1/courses", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.2ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction API call (0.04ms): post ["/api/v1/courses/123/assignments", {:body=>{:assignment=>{:name=>"Assignment"}}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.08ms): put ["/api/v1/courses/1/assignments/2/submissions/3", {:body=>{}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/exempt/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.2ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction API call (0.05ms): put ["/api/v1/courses/123/assignments/345", {:body=>{:assignment=>{:omit_from_final_grade=>true}}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.05ms): put ["/api/v1/courses/1/assignments/2/submissions/3", {:body=>{}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/path", {:query=>"stuff", :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.05ms): get ["/path", {:headers=>{}}]  (0.1ms) rollback transaction  (0.0ms) begin transaction API call (0.05ms): get ["/path", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.04ms): get ["/api/v1/courses", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/courses/123/sections", {:query=>{:include=>["students", "avatar_url", "enrollments"], :per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction API call (0.06ms): get ["/api/v1/courses/123/students", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.2ms) begin transaction API call (0.14ms): get ["/api/v1/courses/123", {:headers=>{}}]  (0.2ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction API call (0.04ms): get ["/api/v1/accounts/1/courses", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.06ms): post ["/api/v1/courses/123/assignments", {:body=>{:assignment=>{:name=>"Assignment"}}, :headers=>{}}]  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/users/123/profile", {:headers=>{}}]  (0.0ms) rollback transaction  (0.1ms) begin transaction API call (0.06ms): get ["/api/v1/courses/123/assignments", {:query=>{:per_page=>50}, :headers=>{}}]  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/accounts/1/users", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/exempt/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.7ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.04ms): post ["/api/v1/courses/123/assignments", {:body=>{:assignment=>{:name=>"Assignment"}}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/courses/123/assignments", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.51ms): get ["/api/v1/accounts/1/users", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/accounts/1/courses", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/users/123/profile", {:headers=>{}}]  (0.5ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): put ["/api/v1/courses/1/assignments/2/submissions/3", {:body=>{}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/courses/123/sections", {:query=>{:include=>["students", "avatar_url", "enrollments"], :per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.2ms) begin transaction API call (0.08ms): get ["/path", {:headers=>{}}]  (0.1ms) rollback transaction  (0.0ms) begin transaction API call (0.09ms): get ["/path", {:headers=>{}}]  (0.1ms) rollback transaction  (0.1ms) begin transaction API call (0.06ms): get ["/path", {:query=>"stuff", :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.04ms): get ["/api/v1/courses/123", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.04ms): put ["/api/v1/courses/123/assignments/345", {:body=>{:assignment=>{:omit_from_final_grade=>true}}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction API call (0.06ms): get ["/api/v1/courses", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/courses/123/students", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/exempt/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml Initializing Canvas using configuration in /Users/kgarner/exempt/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml Initializing Canvas using configuration in /Users/kgarner/exempt/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml Initializing Canvas using configuration in /Users/kgarner/exempt/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml Initializing Canvas using configuration in /Users/kgarner/exempt/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Rendering text template Rendered text template (0.0ms) Completed 200 OK in 6ms (Views: 5.4ms | ActiveRecord: 0.0ms)  (0.1ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid", "state"=>"zzyyxx"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 1ms (Views: 0.2ms | ActiveRecord: 0.0ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 0ms (Views: 0.2ms | ActiveRecord: 0.0ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"invalid"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 1ms (Views: 0.2ms | ActiveRecord: 0.0ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid"} Completed 500 Internal Server Error in 1ms (ActiveRecord: 0.1ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 1ms (Views: 0.6ms | ActiveRecord: 0.0ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid", "state"=>"mismatch"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 1ms (Views: 0.3ms | ActiveRecord: 0.0ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid", "state"=>"zzyyxx"} Completed 500 Internal Server Error in 1ms (ActiveRecord: 0.1ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.2ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.09ms): get ["/api/v1/courses/123/sections", {:query=>{:include=>["students", "avatar_url", "enrollments"], :per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.04ms): get ["/api/v1/courses", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): post ["/api/v1/courses/123/assignments", {:body=>{:assignment=>{:name=>"Assignment"}}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.41ms): get ["/api/v1/accounts/1/courses", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.08ms): get ["/path", {:headers=>{}}]  (0.1ms) rollback transaction  (0.6ms) begin transaction API call (0.05ms): get ["/path", {:query=>"stuff", :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.06ms): get ["/path", {:headers=>{}}]  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.6ms) begin transaction API call (0.03ms): get ["/api/v1/courses/123/students", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): put ["/api/v1/courses/1/assignments/2/submissions/3", {:body=>{}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.04ms): get ["/api/v1/accounts/1/users", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/courses/123", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction API call (0.03ms): get ["/api/v1/courses/123/assignments", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): put ["/api/v1/courses/123/assignments/345", {:body=>{:assignment=>{:omit_from_final_grade=>true}}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/users/123/profile", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/exempt/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/exempt/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/exempt/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction KTG LOOK AT ME  (0.0ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/exempt/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Rendering text template Rendered text template (0.0ms) Completed 200 OK in 3ms (Views: 3.0ms | ActiveRecord: 0.0ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid", "state"=>"mismatch"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 4ms (Views: 4.0ms | ActiveRecord: 0.0ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid", "state"=>"zzyyxx"} Completed 500 Internal Server Error in 2ms (ActiveRecord: 1.4ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid"} Completed 500 Internal Server Error in 0ms (ActiveRecord: 0.1ms)  (0.0ms) rollback transaction  (0.1ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 0ms (Views: 0.3ms | ActiveRecord: 0.0ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"invalid"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 0ms (Views: 0.3ms | ActiveRecord: 0.0ms)  (0.1ms) rollback transaction  (0.1ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid", "state"=>"zzyyxx"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 0ms (Views: 0.3ms | ActiveRecord: 0.0ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 0ms (Views: 0.3ms | ActiveRecord: 0.0ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.05ms): get ["/api/v1/accounts/1/courses", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.04ms): get ["/api/v1/courses", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction API call (0.05ms): get ["/api/v1/accounts/1/users", {:query=>{:per_page=>50}, :headers=>{}}]  (0.2ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.04ms): put ["/api/v1/courses/123/assignments/345", {:body=>{:assignment=>{:omit_from_final_grade=>true}}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): put ["/api/v1/courses/1/assignments/2/submissions/3", {:body=>{}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction API call (0.07ms): get ["/path", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.07ms): get ["/path", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.07ms): get ["/path", {:query=>"stuff", :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/users/123/profile", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/courses/123/assignments", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): post ["/api/v1/courses/123/assignments", {:body=>{:assignment=>{:name=>"Assignment"}}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.05ms): get ["/api/v1/courses/123", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.04ms): get ["/api/v1/courses/123/students", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/courses/123/sections", {:query=>{:include=>["students", "avatar_url", "enrollments"], :per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction KTG LOOK AT ME  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/exempt/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.4ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/users/123/profile", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): put ["/api/v1/courses/1/assignments/2/submissions/3", {:body=>{}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/accounts/1/courses", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/courses/123/sections", {:query=>{:include=>["students", "avatar_url", "enrollments"], :per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/courses", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.08ms): post ["/api/v1/courses/123/assignments", {:body=>{:assignment=>{:name=>"Assignment"}}, :headers=>{}}]  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction API call (0.03ms): get ["/api/v1/courses/123/assignments", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.1ms) begin transaction API call (0.03ms): put ["/api/v1/courses/123/assignments/345", {:body=>{:assignment=>{:omit_from_final_grade=>true}}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.08ms): get ["/path", {:headers=>{}}]  (0.1ms) rollback transaction  (0.0ms) begin transaction API call (0.04ms): get ["/path", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.04ms): get ["/path", {:query=>"stuff", :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/courses/123", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/courses/123/students", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/accounts/1/users", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid"} Completed 500 Internal Server Error in 1ms (ActiveRecord: 0.1ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 6ms (Views: 5.3ms | ActiveRecord: 0.0ms)  (0.1ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"invalid"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 0ms (Views: 0.3ms | ActiveRecord: 0.0ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid", "state"=>"mismatch"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 0ms (Views: 0.2ms | ActiveRecord: 0.0ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid", "state"=>"zzyyxx"} Completed 500 Internal Server Error in 0ms (ActiveRecord: 0.1ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Rendering text template Rendered text template (0.0ms) Completed 200 OK in 0ms (Views: 0.2ms | ActiveRecord: 0.0ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 0ms (Views: 0.2ms | ActiveRecord: 0.0ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction Processing by CanvasOauth::CanvasController#oauth as HTML Parameters: {"code"=>"valid", "state"=>"zzyyxx"} Rendering text template Rendered text template (0.0ms) Completed 200 OK in 0ms (Views: 0.2ms | ActiveRecord: 0.0ms)  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction KTG LOOK AT ME  (0.0ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/exempt/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.07ms): get ["/api/v1/courses/123", {:headers=>{}}]  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction API call (0.04ms): get ["/api/v1/courses/123/sections", {:query=>{:include=>["students", "avatar_url", "enrollments"], :per_page=>50}, :headers=>{}}]  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): put ["/api/v1/courses/123/assignments/345", {:body=>{:assignment=>{:omit_from_final_grade=>true}}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.1ms): get ["/api/v1/courses/123/assignments", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/accounts/1/courses", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/courses/123/students", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): post ["/api/v1/courses/123/assignments", {:body=>{:assignment=>{:name=>"Assignment"}}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/accounts/1/users", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.1ms) begin transaction API call (0.04ms): get ["/api/v1/courses", {:query=>{:per_page=>50}, :headers=>{}}]  (0.0ms) rollback transaction  (0.1ms) begin transaction API call (0.05ms): get ["/path", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/path", {:query=>"stuff", :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/path", {:headers=>{}}]  (0.0ms) rollback transaction  (0.1ms) begin transaction API call (0.05ms): put ["/api/v1/courses/1/assignments/2/submissions/3", {:body=>{}, :headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction API call (0.03ms): get ["/api/v1/users/123/profile", {:headers=>{}}]  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.1ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/exempt/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.0ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/exempt/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.0ms) begin transaction  (0.1ms) rollback transaction Initializing Canvas using configuration in /Users/kgarner/exempt/instructure/canvas_oauth_engine/spec/dummy/config/canvas.yml  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.0ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction  (0.1ms) begin transaction  (0.1ms) rollback transaction