* add a bunch of traces for debugging VRFS-3986

This commit is contained in:
Seth Call 2016-03-14 13:42:14 -05:00
parent dbf4ae777b
commit 22ca511681
4 changed files with 62 additions and 1 deletions

View File

@ -8,7 +8,6 @@ ActiveAdmin.register JamRuby::Jamblaster, :as => 'Jamblaster' do
f.input :user, required: true, collection: User.all, include_blank: false
f.input :serial_no, required: true
f.input :client_id, required: false
f.input :vtoken, required: false
f.input :users, required: true, collection: User.all, include_blank: false
end
f.actions

View File

@ -515,14 +515,19 @@ module JamRuby
active_music_session.tick_track_changes
connection = ConnectionManager.new.join_music_session(user, client_id, active_music_session, as_musician, tracks, audio_latency, video_sources)
@@log.warn("ERRORS_NIL_DEBUG _A_")
if connection.errors.any?
@@log.warn("ERRORS_NIL_DEBUG _B_")
# rollback the transaction to make sure nothing is disturbed in the database
raise ActiveRecord::Rollback
end
@@log.warn("ERRORS_NIL_DEBUG _C_")
end
end
@@log.warn("ERRORS_NIL_DEBUG _D_")
unless connection.errors.any?
@@log.warn("ERRORS_NIL_DEBUG _E_")
user.update_progression_field(:first_music_session_at)
MusicSessionUserHistory.save(music_session_id, user.id, client_id, tracks)
@ -536,6 +541,7 @@ module JamRuby
end
end
end
@@log.warn("ERRORS_NIL_DEBUG _F_")
connection
@ -563,7 +569,9 @@ module JamRuby
active_music_session.save
@@log.warn("ERRORS_NIL_DEBUG _G_")
unless active_music_session.errors.any?
@@log.warn("ERRORS_NIL_DEBUG _H_")
music_session.started_at = active_music_session.created_at
music_session.save(:validate => false)
@ -574,7 +582,9 @@ module JamRuby
as_musician = true
connection = ConnectionManager.new.join_music_session(user, client_id, active_music_session, as_musician, tracks, audio_latency, video_sources)
@@log.warn("ERRORS_NIL_DEBUG _I_")
unless connection.errors.any?
@@log.warn("ERRORS_NIL_DEBUG _J_")
user.update_progression_field(:first_music_session_at)
MusicSessionUserHistory.save(active_music_session.id, user.id, client_id, tracks)
@ -589,6 +599,7 @@ module JamRuby
return_value = connection
else
@@log.warn("ERRORS_NIL_DEBUG _K_")
return_value = connection
# rollback the transaction to make sure nothing is disturbed in the database
raise ActiveRecord::Rollback
@ -598,6 +609,7 @@ module JamRuby
# rollback the transaction to make sure nothing is disturbed in the database
raise ActiveRecord::Rollback
end
@@log.warn("ERRORS_NIL_DEBUG _L_")
end
end

View File

@ -345,6 +345,8 @@ describe ConnectionManager, no_transaction: true do
assert_session_exists(music_session_id, false)
end
it "join_music_session fails if no connection" do
client_id = "client_id10"

View File

@ -2,12 +2,60 @@ require 'spec_helper'
describe ActiveMusicSession do
TRACKS = [{"instrument_id" => "electric guitar", "sound" => "mono", "client_track_id" => "some_client_track_id"}]
before(:each) do
ActiveMusicSession.delete_all
IcecastServer.delete_all
IcecastMount.delete_all
end
describe "participant_create" do
let(:user) {FactoryGirl.create(:user)}
it "fails gracefully when no connection" do
music_session = FactoryGirl.create(:active_music_session, :creator => user, :musician_access => false)
expect { ActiveMusicSession.participant_create(user, music_session.id, "junk", true, nil, 5) }.to raise_error(ActiveRecord::RecordNotFound)
end
it "succeeds no active music session" do
music_session = FactoryGirl.create(:music_session, :creator => user, :musician_access => false)
conn = FactoryGirl.create(:connection, :user => user)
connection = ActiveMusicSession.participant_create(user, music_session.id, conn.client_id, true, nil, 5)
connection.errors.any?.should be false
ActiveMusicSession.find(music_session.id)
end
it "fails gracefully when invalid music session Id" do
music_session = FactoryGirl.create(:active_music_session, :creator => user, :musician_access => false)
conn = FactoryGirl.create(:connection, :user => user)
expect { ActiveMusicSession.participant_create(user, 'bad music session ID', conn.client_id, true, nil, 5) }.to raise_error(ActiveRecord::RecordNotFound)
end
it "fails gracefully when invalid music session Id" do
music_session = FactoryGirl.create(:active_music_session, :creator => user, :musician_access => false)
conn = FactoryGirl.create(:connection, :user => user)
ActiveMusicSession.participant_create(user, 'bad music session ID', conn.client_id, true, nil, 5)
end
it "pulls out of other session" do
music_session1 = FactoryGirl.create(:active_music_session, :creator => user, :musician_access => false)
music_session2 = FactoryGirl.create(:active_music_session, :creator => user, :musician_access => false)
conn = FactoryGirl.create(:connection, :user => user, music_session: music_session2)
connection = ActiveMusicSession.participant_create(user, music_session1.id, conn.client_id, true, nil, 5)
connection.should eql conn
connection.errors.any?.should be true
end
it "user-less connection bails appropriately" do
music_session1 = FactoryGirl.create(:active_music_session, :creator => user, :musician_access => false)
conn = FactoryGirl.create(:connection)
expect { ActiveMusicSession.participant_create(user, music_session1.id, conn.client_id, true, nil, 5) }.to raise_error(ActiveRecord::RecordNotFound)
end
end
it 'can grant access to valid user' do
user1 = FactoryGirl.create(:user) # in the jam session