From 8a84ff5609bc2ffa025d9976aff72a0e2650d37a Mon Sep 17 00:00:00 2001 From: Seth Call Date: Wed, 31 Dec 2014 23:17:47 -0600 Subject: [PATCH] * fix broken tests because of removal of diagnostics, and fix bad logging pattern --- ruby/lib/jam_ruby/resque/batch_email_job.rb | 2 +- .../jam_ruby/resque/icecast_config_writer.rb | 2 +- ruby/lib/jam_ruby/resque/resque_hooks.rb | 15 ++++++++------- .../scheduled/active_music_session_cleaner.rb | 2 +- .../resque/scheduled/audiomixer_retry.rb | 2 +- .../scheduled/cleanup_facebook_signup.rb | 3 --- .../resque/scheduled/daily_session_emailer.rb | 2 +- .../resque/scheduled/icecast_config_retry.rb | 2 +- .../resque/scheduled/icecast_source_check.rb | 16 +++++++++------- .../scheduled/music_session_scheduler.rb | 2 +- .../resque/scheduled/new_musician_emailer.rb | 2 +- .../resque/scheduled/recordings_cleaner.rb | 2 +- .../scheduled_music_session_cleaner.rb | 2 +- .../resque/scheduled/score_history_sweeper.rb | 2 +- .../jam_ruby/resque/scheduled/stats_maker.rb | 18 +++++++++++++++--- .../scheduled/unused_music_notation_cleaner.rb | 2 +- .../resque/scheduled/user_progress_emailer.rb | 2 +- web/app/assets/javascripts/sessionList.js | 3 ++- web/app/controllers/api_controller.rb | 9 ++++++--- .../controllers/api_recordings_controller.rb | 4 +++- .../controllers/api_user_syncs_controller.rb | 5 +++-- .../controllers/vanilla_forums_controller.rb | 9 ++++++--- web/config/initializers/email.rb | 4 +--- .../middlewares/clear_duplicated_session.rb | 6 ++++-- web/spec/features/reconnect_spec.rb | 5 ----- 25 files changed, 70 insertions(+), 53 deletions(-) diff --git a/ruby/lib/jam_ruby/resque/batch_email_job.rb b/ruby/lib/jam_ruby/resque/batch_email_job.rb index 6d82d420e..fbfcde05f 100644 --- a/ruby/lib/jam_ruby/resque/batch_email_job.rb +++ b/ruby/lib/jam_ruby/resque/batch_email_job.rb @@ -3,7 +3,7 @@ require 'resque-lonely_job' module JamRuby class BatchEmailJob - extend Resque::Plugins::LonelyJob + extend Resque::Plugins::JamLonelyJob @@log = Logging.logger[BatchEmailJob] diff --git a/ruby/lib/jam_ruby/resque/icecast_config_writer.rb b/ruby/lib/jam_ruby/resque/icecast_config_writer.rb index 05ce40a26..50b41f230 100644 --- a/ruby/lib/jam_ruby/resque/icecast_config_writer.rb +++ b/ruby/lib/jam_ruby/resque/icecast_config_writer.rb @@ -9,7 +9,7 @@ module JamRuby # executes a mix of tracks, creating a final output mix class IcecastConfigWriter - extend Resque::Plugins::LonelyJob + extend Resque::Plugins::JamLonelyJob @@log = Logging.logger[IcecastConfigWriter] diff --git a/ruby/lib/jam_ruby/resque/resque_hooks.rb b/ruby/lib/jam_ruby/resque/resque_hooks.rb index 9b27e7097..fcd344bf6 100644 --- a/ruby/lib/jam_ruby/resque/resque_hooks.rb +++ b/ruby/lib/jam_ruby/resque/resque_hooks.rb @@ -1,5 +1,4 @@ require 'resque' -require 'resque-lonely_job' ENV['FORK_PER_JOB'] = 'false' @@ -63,19 +62,21 @@ module JamRuby end end + +require 'resque-lonely_job' + # for jobs that extend lonely job, we override around_perform already implemented in LonelyJob, and call into it module Resque module Plugins - module LonelyJob + module JamLonelyJob def around_perform(*args) Stats.timer('job.stats') do - begin - yield - ensure - unlock_queue(*args) - end + super end end end end end + +Resque::Plugins::JamLonelyJob.module_eval { include Resque::Plugins::LonelyJob } + diff --git a/ruby/lib/jam_ruby/resque/scheduled/active_music_session_cleaner.rb b/ruby/lib/jam_ruby/resque/scheduled/active_music_session_cleaner.rb index 0b12cc0ce..899f3dd67 100644 --- a/ruby/lib/jam_ruby/resque/scheduled/active_music_session_cleaner.rb +++ b/ruby/lib/jam_ruby/resque/scheduled/active_music_session_cleaner.rb @@ -7,7 +7,7 @@ require 'digest/md5' module JamRuby class ActiveMusicSessionCleaner - extend Resque::Plugins::LonelyJob + extend Resque::Plugins::JamLonelyJob attr_accessor :interval diff --git a/ruby/lib/jam_ruby/resque/scheduled/audiomixer_retry.rb b/ruby/lib/jam_ruby/resque/scheduled/audiomixer_retry.rb index 6c2d8fe90..782b8a8d9 100644 --- a/ruby/lib/jam_ruby/resque/scheduled/audiomixer_retry.rb +++ b/ruby/lib/jam_ruby/resque/scheduled/audiomixer_retry.rb @@ -8,7 +8,7 @@ module JamRuby # periodically scheduled to find jobs that need retrying, and cleanup activities class AudioMixerRetry - extend Resque::Plugins::LonelyJob + extend Resque::Plugins::JamLonelyJob @queue = :scheduled_audiomixer_retry diff --git a/ruby/lib/jam_ruby/resque/scheduled/cleanup_facebook_signup.rb b/ruby/lib/jam_ruby/resque/scheduled/cleanup_facebook_signup.rb index 25b643187..c8f67120b 100644 --- a/ruby/lib/jam_ruby/resque/scheduled/cleanup_facebook_signup.rb +++ b/ruby/lib/jam_ruby/resque/scheduled/cleanup_facebook_signup.rb @@ -2,9 +2,6 @@ module JamRuby class CleanupFacebookSignup - - - @queue = :scheduled_cleanup_facebook_signup @@log = Logging.logger[CleanupFacebookSignup] diff --git a/ruby/lib/jam_ruby/resque/scheduled/daily_session_emailer.rb b/ruby/lib/jam_ruby/resque/scheduled/daily_session_emailer.rb index e5faa2d51..6d233f165 100644 --- a/ruby/lib/jam_ruby/resque/scheduled/daily_session_emailer.rb +++ b/ruby/lib/jam_ruby/resque/scheduled/daily_session_emailer.rb @@ -1,6 +1,6 @@ module JamRuby class DailySessionEmailer - extend Resque::Plugins::LonelyJob + extend Resque::Plugins::JamLonelyJob @queue = :scheduled_daily_session_emailer @@log = Logging.logger[DailySessionEmailer] diff --git a/ruby/lib/jam_ruby/resque/scheduled/icecast_config_retry.rb b/ruby/lib/jam_ruby/resque/scheduled/icecast_config_retry.rb index 1e2f6fcc3..7048c9be4 100644 --- a/ruby/lib/jam_ruby/resque/scheduled/icecast_config_retry.rb +++ b/ruby/lib/jam_ruby/resque/scheduled/icecast_config_retry.rb @@ -8,7 +8,7 @@ module JamRuby # periodically scheduled to find jobs that need retrying class IcecastConfigRetry - extend Resque::Plugins::LonelyJob + extend Resque::Plugins::JamLonelyJob @queue = :scheduled_icecast_config_retry diff --git a/ruby/lib/jam_ruby/resque/scheduled/icecast_source_check.rb b/ruby/lib/jam_ruby/resque/scheduled/icecast_source_check.rb index 6b18cb633..1519ed6f3 100644 --- a/ruby/lib/jam_ruby/resque/scheduled/icecast_source_check.rb +++ b/ruby/lib/jam_ruby/resque/scheduled/icecast_source_check.rb @@ -9,11 +9,13 @@ module JamRuby # http://blog.bignerdranch.com/1643-never-use-resque-for-serial-jobs/ # periodically scheduled to find sources that need to be brought down, or alternatively, it seems the client failed to start sourcing class IcecastSourceCheck - extend Resque::Plugins::LonelyJob + extend Resque::Plugins::JamLonelyJob @queue = :scheduled_icecast_source_check - @@log = Logging.logger[IcecastSourceCheck] + def log + @log || Logging.logger[IcecastSourceCheck] + end def self.lock_timeout # this should be enough time to make sure the job has finished, but not so long that the system isn't recovering from a abandoned job @@ -21,11 +23,7 @@ module JamRuby end def self.perform - @@log.debug("waking up") - - IcecastSourceCheck.new.run - - @@log.debug("done") + IcecastSourceCheck.new.run end @@ -35,6 +33,8 @@ module JamRuby # ** listeners > 0 and sourced is DOWN (false) # ** listeners == 0 and sourced is UP (true) + log.debug("waking up") + IcecastMount.find_each(lock: true, :conditions => "( (listeners > 0 AND sourced = FALSE) OR (listeners = 0 AND sourced = TRUE) ) AND ( sourced_needs_changing_at IS NULL OR sourced_needs_changing_at < (NOW() - interval '#{APP_CONFIG.icecast_max_sourced_changed} second') ) ", :batch_size => 100) do |mount| if mount.music_session_id mount.with_lock do @@ -42,6 +42,8 @@ module JamRuby end end end + + log.debug("done") end def handle_notifications(mount) diff --git a/ruby/lib/jam_ruby/resque/scheduled/music_session_scheduler.rb b/ruby/lib/jam_ruby/resque/scheduled/music_session_scheduler.rb index 6fa751ef9..2ed6b53fc 100644 --- a/ruby/lib/jam_ruby/resque/scheduled/music_session_scheduler.rb +++ b/ruby/lib/jam_ruby/resque/scheduled/music_session_scheduler.rb @@ -6,7 +6,7 @@ require 'digest/md5' module JamRuby class MusicSessionScheduler - extend Resque::Plugins::LonelyJob + extend Resque::Plugins::JamLonelyJob @queue = :music_session_scheduler diff --git a/ruby/lib/jam_ruby/resque/scheduled/new_musician_emailer.rb b/ruby/lib/jam_ruby/resque/scheduled/new_musician_emailer.rb index 2a2c861a4..8012e197a 100644 --- a/ruby/lib/jam_ruby/resque/scheduled/new_musician_emailer.rb +++ b/ruby/lib/jam_ruby/resque/scheduled/new_musician_emailer.rb @@ -1,6 +1,6 @@ module JamRuby class NewMusicianEmailer - extend Resque::Plugins::LonelyJob + extend Resque::Plugins::JamLonelyJob @queue = :scheduled_new_musician_emailer @@log = Logging.logger[NewMusicianEmailer] diff --git a/ruby/lib/jam_ruby/resque/scheduled/recordings_cleaner.rb b/ruby/lib/jam_ruby/resque/scheduled/recordings_cleaner.rb index 1e4b41769..7903edc0a 100644 --- a/ruby/lib/jam_ruby/resque/scheduled/recordings_cleaner.rb +++ b/ruby/lib/jam_ruby/resque/scheduled/recordings_cleaner.rb @@ -8,7 +8,7 @@ module JamRuby # periodically scheduled to find recordings to cleanup class RecordingsCleaner - extend Resque::Plugins::LonelyJob + extend Resque::Plugins::JamLonelyJob @queue = :recordings_cleaner diff --git a/ruby/lib/jam_ruby/resque/scheduled/scheduled_music_session_cleaner.rb b/ruby/lib/jam_ruby/resque/scheduled/scheduled_music_session_cleaner.rb index 8dfeca8e0..8fddeccfb 100644 --- a/ruby/lib/jam_ruby/resque/scheduled/scheduled_music_session_cleaner.rb +++ b/ruby/lib/jam_ruby/resque/scheduled/scheduled_music_session_cleaner.rb @@ -1,6 +1,6 @@ module JamRuby class ScheduledMusicSessionCleaner - extend Resque::Plugins::LonelyJob + extend Resque::Plugins::JamLonelyJob @queue = :scheduled_music_session_cleaner @@log = Logging.logger[ScheduledMusicSessionCleaner] diff --git a/ruby/lib/jam_ruby/resque/scheduled/score_history_sweeper.rb b/ruby/lib/jam_ruby/resque/scheduled/score_history_sweeper.rb index 76c759ef8..52819600b 100644 --- a/ruby/lib/jam_ruby/resque/scheduled/score_history_sweeper.rb +++ b/ruby/lib/jam_ruby/resque/scheduled/score_history_sweeper.rb @@ -8,7 +8,7 @@ module JamRuby # periodically scheduled to find jobs that need retrying class ScoreHistorySweeper - extend Resque::Plugins::LonelyJob + extend Resque::Plugins::JamLonelyJob @queue = :score_history_sweeper diff --git a/ruby/lib/jam_ruby/resque/scheduled/stats_maker.rb b/ruby/lib/jam_ruby/resque/scheduled/stats_maker.rb index d84535b3e..f22dd4bad 100644 --- a/ruby/lib/jam_ruby/resque/scheduled/stats_maker.rb +++ b/ruby/lib/jam_ruby/resque/scheduled/stats_maker.rb @@ -8,13 +8,25 @@ module JamRuby # creates stats to send to influx periodically class StatsMaker - extend Resque::Plugins::LonelyJob + extend Resque::Plugins::JamLonelyJob - @queue = :stats_maker + @queue = :scheduled_db_metrics + + def log + @log || Logging.logger[StatsMaker] + end + + def self.lock_timeout + 120 + end - @@log = Logging.logger['StatsMaker'] def self.perform + StatsMaker.new.run + end + + def run + log.debug("starting...") Stats.write('connection', Connection.stats) Stats.write('users', User.stats) end diff --git a/ruby/lib/jam_ruby/resque/scheduled/unused_music_notation_cleaner.rb b/ruby/lib/jam_ruby/resque/scheduled/unused_music_notation_cleaner.rb index 5955b1ec3..3d3ca8e76 100644 --- a/ruby/lib/jam_ruby/resque/scheduled/unused_music_notation_cleaner.rb +++ b/ruby/lib/jam_ruby/resque/scheduled/unused_music_notation_cleaner.rb @@ -6,7 +6,7 @@ require 'digest/md5' module JamRuby class UnusedMusicNotationCleaner - extend Resque::Plugins::LonelyJob + extend Resque::Plugins::JamLonelyJob @queue = :unused_music_notation_cleaner diff --git a/ruby/lib/jam_ruby/resque/scheduled/user_progress_emailer.rb b/ruby/lib/jam_ruby/resque/scheduled/user_progress_emailer.rb index 99835146f..84e1c5081 100644 --- a/ruby/lib/jam_ruby/resque/scheduled/user_progress_emailer.rb +++ b/ruby/lib/jam_ruby/resque/scheduled/user_progress_emailer.rb @@ -1,6 +1,6 @@ module JamRuby class UserProgressEmailer - extend Resque::Plugins::LonelyJob + extend Resque::Plugins::JamLonelyJob @queue = :scheduled_user_progress_emailer @@log = Logging.logger[UserProgressEmailer] diff --git a/web/app/assets/javascripts/sessionList.js b/web/app/assets/javascripts/sessionList.js index 46f32fcad..61db4744e 100644 --- a/web/app/assets/javascripts/sessionList.js +++ b/web/app/assets/javascripts/sessionList.js @@ -23,7 +23,8 @@ // related to listen function stateChange(e, data) { - var $listenLink = e.element; + var $listenLink = e.element; // TODO: this is empty + console.log(e,$(this)) var $listenText = $('.listen-link-text', $listenLink); var $listenDetails = $('.listen-link-details', $listenLink); diff --git a/web/app/controllers/api_controller.rb b/web/app/controllers/api_controller.rb index d05413842..c42f138b1 100644 --- a/web/app/controllers/api_controller.rb +++ b/web/app/controllers/api_controller.rb @@ -1,6 +1,9 @@ class ApiController < ApplicationController - @@log = Logging.logger[ApiController] + def log + @log || Logging.logger[ApiController] + end + @@html_encoder = HTMLEntities.new # define common error handlers @@ -21,11 +24,11 @@ class ApiController < ApplicationController render "errors/conflict_error", :status => 409 end rescue_from 'ActiveRecord::RecordNotFound' do |exception| - @@log.debug(exception) + log.debug(exception) render :json => { :errors => { :resource => ["record not found"] } }, :status => 404 end rescue_from 'PG::Error' do |exception| - @@log.debug(exception) + log.debug(exception) if exception.to_s.include? "duplicate key value violates unique constraint" render :json => { :errors => { :resource => ["resource already exists"] } }, :status => 409 # 409 = conflict else diff --git a/web/app/controllers/api_recordings_controller.rb b/web/app/controllers/api_recordings_controller.rb index b286bc8a2..695e3a4b4 100644 --- a/web/app/controllers/api_recordings_controller.rb +++ b/web/app/controllers/api_recordings_controller.rb @@ -8,7 +8,9 @@ class ApiRecordingsController < ApiController respond_to :json - @@log = Logging.logger[ApiRecordingsController] + def log + @log || Logging.logger[ApiRecordingsController] + end def index # lists recordings created by for the current user diff --git a/web/app/controllers/api_user_syncs_controller.rb b/web/app/controllers/api_user_syncs_controller.rb index d511b34af..54a0554bc 100644 --- a/web/app/controllers/api_user_syncs_controller.rb +++ b/web/app/controllers/api_user_syncs_controller.rb @@ -8,8 +8,9 @@ class ApiUserSyncsController < ApiController respond_to :json - @@log = Logging.logger[ApiUserSyncsController] - + def log + @log || Logging.logger[ApiUserSyncsController] + end def show @user_sync = UserSync.show(params[:user_sync_id], current_user.id) diff --git a/web/app/controllers/vanilla_forums_controller.rb b/web/app/controllers/vanilla_forums_controller.rb index 86ac2bf48..b7772880d 100644 --- a/web/app/controllers/vanilla_forums_controller.rb +++ b/web/app/controllers/vanilla_forums_controller.rb @@ -3,7 +3,10 @@ require 'js_connect' class VanillaForumsController < ApplicationController - @@log = Logging.logger[VanillaForumsController] + + def log + @log || Logging.logger[VanillaForumsController ] + end # displays the embedded forum # see http://vanillaforums.com/blog/jsconnect-technical-documentation-for-embedded-sso/ @@ -43,9 +46,9 @@ class VanillaForumsController < ApplicationController 'photourl' => current_user.resolved_photo_url, 'uniqueid' => current_user.id} - @@log.debug("user is logged in: #{user}") + log.debug("user is logged in: #{user}") else - @@log.debug("user is not logged in") + log.debug("user is not logged in") end diff --git a/web/config/initializers/email.rb b/web/config/initializers/email.rb index 8d9daf5a5..2710d5659 100644 --- a/web/config/initializers/email.rb +++ b/web/config/initializers/email.rb @@ -1,5 +1,3 @@ -@@log = Logging.logger['EmailInitializer'] - ActionMailer::Base.raise_delivery_errors = true ActionMailer::Base.delivery_method = GenericState.allow_emails? ? :smtp : :test ActionMailer::Base.smtp_settings = { @@ -12,4 +10,4 @@ ActionMailer::Base.smtp_settings = { :enable_starttls_auto => Rails.application.config.email_smtp_starttls_auto } -@@log.debug("ActionMailer.delivery_method = #{ActionMailer::Base.delivery_method}") +Rails.logger.debug("ActionMailer.delivery_method = #{ActionMailer::Base.delivery_method}") diff --git a/web/lib/middlewares/clear_duplicated_session.rb b/web/lib/middlewares/clear_duplicated_session.rb index e91a09298..766bfff71 100644 --- a/web/lib/middlewares/clear_duplicated_session.rb +++ b/web/lib/middlewares/clear_duplicated_session.rb @@ -5,7 +5,9 @@ module Middlewares class ClearDuplicatedSession - @@log = Logging.logger[ClearDuplicatedSession] + def log + @log || Logging.logger[ClearDuplicatedSession] + end def initialize(app) @app = app @@ -53,7 +55,7 @@ module Middlewares # Sets expiration date = 1970-01-01 to the cookie, this way browser will # note the cookie is expired and will delete it def delete_session_cookie_for_current_domain(env, headers) - @@log.debug "deleting default domain session cookie" + log.debug "deleting default domain session cookie" ::Rack::Utils.set_cookie_header!( headers, # contains response headers get_session_key(env), # gets the cookie session name, '_session_cookie' - for this example diff --git a/web/spec/features/reconnect_spec.rb b/web/spec/features/reconnect_spec.rb index ba386e278..adc8e982b 100644 --- a/web/spec/features/reconnect_spec.rb +++ b/web/spec/features/reconnect_spec.rb @@ -74,11 +74,6 @@ describe "Reconnect", :js => true, :type => :feature, :capybara_feature => true # but.. after a few seconds, it should reconnect on it's own page.should_not have_selector('.no-websocket-connection') - - # confirm that a diagnostic was written - Diagnostic.count.should == i + 1 - diagnostic = Diagnostic.first - diagnostic.type.should == Diagnostic::WEBSOCKET_CLOSED_LOCALLY end # then verify we can create a session