Commit Graph

382 Commits

Author SHA1 Message Date
Dave Hoover 4d77995e06 Store off a reference to the interval that generates our server reports so that subclasses can play with it if they want.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4979 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-03-24 21:11:30 +00:00
Michael Bayne 8a745b30e0 Listen for SIGTERM as well and gracefully shutdown in that case.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4959 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-03-05 23:28:28 +00:00
Dave Hoover 4f5d065405 Access this static method in a static way.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4928 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-01-31 21:26:37 +00:00
Dave Hoover 2ce35db583 Remove unneeded casts.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4923 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-01-17 01:25:52 +00:00
Charlie Groves 643982e798 If we just bail after a connection closes during resolution, the ClientManager still thinks we're resolved and can just resume the session if the client reconnects. Resuming fails because we don't have _clobj to resume with, so the client fails to connect over and over again until the half-connected client is flushed from ClientManager's cache several minutes later. Just clear the client out of the cache immediately instead.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4920 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-01-08 04:12:35 +00:00
Michael Bayne 768e6a76be Create our shutdowner list at class init time so that it is safe to register a
shutdowner at any time.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4915 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-12-20 22:05:49 +00:00
Michael Bayne 6e55c2df8b Use samskivert signal wrapper.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4909 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-12-17 22:23:51 +00:00
Michael Bayne c935c46612 Handle the client connecting and disconnecting before client object resolution
completed, or connecting, disconnecting and reconnceting before client object
resolution completes a little more gracefully.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4889 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-12-03 18:28:07 +00:00
Michael Bayne 95adfeb646 Regenerated services.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4883 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-11-28 00:25:35 +00:00
Michael Bayne 63db77667a Some type safety, redundant cast removal, and other code hygiene.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4879 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-11-24 19:40:19 +00:00
Mike Thomas aa418e19ee If the reboot time requested is at exactly the right time for the warning, we can use that warning and not require to go to the next level.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4877 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-11-20 18:26:31 +00:00
Michael Bayne f471da8a49 Let our peers send up to 100 messages a second after which point we will
politely complain that they're talking a lot but not disconnect them.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4871 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-11-12 21:29:57 +00:00
Dave Hoover baa664bd11 channel is a SocketChannel which is a subclass of SelectableChannel, so this instanceof
can't ever be false. (And just above, we've already confirmed that channel != null, so this
check wasn't falling back to protecting us from that)


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4867 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-11-08 18:49:28 +00:00
Michael Bayne e6af23ad38 Let's report that in a friendlier way.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4855 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-10-26 17:41:24 +00:00
Michael Bayne 4f83cf0119 Added a backwards compatible registerDispatcher() call to repair GG games.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4851 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-10-19 23:16:52 +00:00
Michael Bayne a2af35fcfd Log a warning rather than NPEing.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4847 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-10-18 18:49:52 +00:00
Charlie Groves 45034b895e Reference the client immediately rather than on the dobjmgr thread so it doesn't get released before we tell the listener it's resolved.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4842 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-10-10 02:01:48 +00:00
Michael Bayne 120d641dea Comment rearranging.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4834 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-10-01 21:26:27 +00:00
Mike Thomas b3678b086d The client manager was busy registering client objects on the ConnectionManager thread rather than the dobj thread. Give it a nudge in the right direction.
Also, added logging to the PresentsDObjectMgr to check for this type of thing and dump stack if anyone is trying to register objects anywhere but the DObj thread (assuming we're sufficiently far started up that there is one).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4832 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-09-28 18:35:20 +00:00
Michael Bayne 93c89fe0a7 Be sure that we always dispatch subscription responses (success or failure) on
the dobjmgr thread to relieve the caller of the burden of knowing what thread
they are on.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4826 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-09-14 18:17:50 +00:00
Mike Thomas e4cb816fba This is being called on other-than-the-DObject thread, and we really don't want to be posting messages directly outside that thread.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4825 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-09-14 17:58:54 +00:00
Michael Bayne 810969f6f9 Pass a message along with a FailureResponse.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4819 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-08-22 01:15:39 +00:00
Michael Bayne a6be47fa83 Adjust the shutdown process to ensure that we can get messages generated during
the shutdown sequence out to our clients where desired.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4807 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-08-06 18:38:27 +00:00
Michael Bayne 0c5a4f6683 Useful error reporting.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4806 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-08-04 02:16:24 +00:00
Michael Bayne 038e5c5b85 Differentiating these invokers turns out not to be especially useful. Let's
avoid log spam and call them all the same thing.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4773 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-07-18 18:34:53 +00:00
Michael Bayne b514ddbbf2 Always dispatch clientResolved() on the dobjmgr thread, even if the client is
already resolved and we're being called from a non-dobjmgr thread.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4744 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-06-28 21:42:41 +00:00
Dave Hoover 3b701ef57d Tabs -> spaces
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4742 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-06-26 00:07:36 +00:00
Michael Bayne 20e70a9735 Log the registration and clearing of proxied object as we're seeing some
strangeness in production on Bang.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4738 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-06-15 16:44:09 +00:00
Michael Bayne d1313d2296 Let the server delay shutting certain things down until it knows that the
invoker and dobj threads are well and truly finished.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4737 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-06-15 00:03:31 +00:00
Michael Bayne 68a60d83f4 The Flash client seems to be sending a message just as it's (or possibly even
after it's) logging off which comes in after we've cleared out the client
object and causes annoyance. Now we drop the message and we'll log a notice for
the time being.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4735 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-06-14 18:15:02 +00:00
Michael Bayne 2fa6146d93 Have CompoundEvent handle propagating setTargetOid() to its internal events and
clean things up for the callers.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4731 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-06-13 23:15:20 +00:00
Michael Bayne 097a53e534 Don't try to register HUP on Windows because it fails.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4728 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-06-13 18:31:15 +00:00
Michael Bayne 6db6eef7e1 Close our bound socket when the connection manager is shutdown. New-styled
logging.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4727 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-06-13 17:48:42 +00:00
Michael Bayne 8206753188 A we bit of (not so) new logging world order conversion.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4718 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-05-23 18:40:15 +00:00
Michael Bayne 9bcca099ac Implemented a Ray-proposed solution where we keep track of events that were
(pre-applied and) posted before we received our object but processed (and hence
dispatched to us) after we received our object.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4715 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-05-18 03:37:14 +00:00
Michael Bayne d9f76c98fd Some of the widening.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4711 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-05-15 00:26:27 +00:00
Michael Bayne 91f8ac6fa6 Turns out Sun has secret support for handling signals, so we'll use that
instead of our native library. I've left the native library support in in case
the Sun stuff is not available, but that's so extremely unlikely in a server
environment (IBM recreates Sun's signal handling in their VM because it's so
dang useful) that I should probably just nix it altogether and simplify things.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4710 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-05-14 21:36:58 +00:00
Michael Bayne 4d455eb6e6 _usermap is referenced by both the conmgr and dobjmgr threads, so access to it
must be synchronized.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4681 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-05-04 02:25:03 +00:00
Michael Bayne 69485a88ee Widened, fixed documentation and nixed unneeded runnable posting for
clientSessionDidEnd() which is called on the dobjmgr thread directly.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4680 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-05-04 02:11:33 +00:00
Michael Bayne d61083db7e Fixed another beans frank problem.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4659 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-04-10 01:01:07 +00:00
Michael Bayne 32a97f5b18 Or we'll just fix the bug. How did any of this ever work?
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4658 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-04-10 00:54:20 +00:00
Michael Bayne b24fd5c408 Log the local oid assigned to all proxied objects so that we can see if
something funny is happening with spurious objects dispatched across servers.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4657 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-04-10 00:51:17 +00:00
Michael Bayne 1fd540ab48 We don't even need this check. Simplify simplify simplify.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4656 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-04-07 20:01:21 +00:00
Michael Bayne 9d5cf32ce0 Nixed premature optimization wherein a frequent premature optimizer, who we
will not name, was trying to allow certain authentications to proceed directly
on the authenticator thread instead of making a round trip through the
invoker. This resulted in those authentications trying to post their results
from the authenticator thread, which is bad because all downstream messages
should be posted from the distributed object thread.

The only authentications that would "benefit" from this optimization were peer
authentications of which there would be extremely few (currently one in our
largest installation) compared to the hundreds of thousands of normal
authentications, which have to make the invoker thread round trip as a matter
of course.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4655 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-04-07 19:57:51 +00:00
Michael Bayne 558d9ec2dc Widened. Modified authenticator to freak out rather than just go ahead and
process an authentication request if it is asked to do so before it has an
invoker (meaning the server is not yet initialized).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4654 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-04-07 19:47:29 +00:00
Michael Bayne 3546567824 Log the thread in question as we're seeing this warning on code that certainly
looks like it should be running on the dobjmgr thread.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4653 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-04-07 19:39:24 +00:00
Michael Bayne 63413f862c Widened, added sanity check to postMessage() to log a warning and stack trace
if it is called from any thread except the distributed object dispatch thread.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4647 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-04-06 18:29:42 +00:00
Michael Bayne 3ac5ab2e10 Reset the framing output stream before we write the message rather than after
in case we freak out in the middle of writing a message.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4645 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-04-05 17:20:53 +00:00
Michael Bayne 295633909e Widened, tweaker error messages.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4643 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-04-03 18:10:55 +00:00
Elizabeth Fong 3c7a546472 rollback r4636 due to interference with non-yohoho projects
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4637 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-03-27 21:49:25 +00:00