Index: openacs-4/packages/xotcl-core/tcl/bgdelivery-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xotcl-core/tcl/bgdelivery-procs.tcl,v diff -u -r1.62 -r1.63 --- openacs-4/packages/xotcl-core/tcl/bgdelivery-procs.tcl 31 Aug 2018 11:16:45 -0000 1.62 +++ openacs-4/packages/xotcl-core/tcl/bgdelivery-procs.tcl 8 Nov 2018 14:40:27 -0000 1.63 @@ -351,7 +351,13 @@ #my log "-- sending to subscriber for [:key] $smsg ch=[:channel] \ # mode=[:mode], user_id [:user_id]" puts -nonewline [:channel] $smsg - flush [:channel] + # Failure to flush the channel usually indicates that client + # (e.g. browser) closed the connection. + if {[catch { + flush [:channel] + }]} { + error "client_disconnected" + } } Subscriber proc foreachSubscriber {key method {argument ""}} { @@ -360,7 +366,11 @@ set subs1 [list] foreach s [set :subscriptions($key)] { if {[catch {$s $method $argument} errMsg]} { - ns_log error "error in $method to subscriber $s (key=$key): $errMsg\n$::errorInfo" + if {$errMsg eq "client_disconnected"} { + ns_log warning "$method to subscriber $s (key=$key): $errMsg" + } else { + ns_log error "error in $method to subscriber $s (key=$key): $errMsg\n$::errorInfo" + } $s destroy } else { lappend subs1 $s