]> git.mxchange.org Git - quix0rs-gnu-social.git/log
quix0rs-gnu-social.git
14 years agoFixed innerHTML problem in IE7 and 8 for badge script
Sarven Capadisli [Fri, 22 Jan 2010 18:18:14 +0000 (19:18 +0100)]
Fixed innerHTML problem in IE7 and 8 for badge script

14 years agoMerge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
Evan Prodromou [Fri, 22 Jan 2010 19:18:21 +0000 (14:18 -0500)]
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing

14 years agodo actual language negotiation for help docs
Evan Prodromou [Fri, 22 Jan 2010 19:13:28 +0000 (14:13 -0500)]
do actual language negotiation for help docs

14 years agorestructure doc.php for new use
Evan Prodromou [Wed, 7 Oct 2009 09:14:25 +0000 (05:14 -0400)]
restructure doc.php for new use

14 years agoaction/doc.php is PHPCS clean
Evan Prodromou [Tue, 6 Oct 2009 19:29:22 +0000 (15:29 -0400)]
action/doc.php is PHPCS clean

14 years agoMemcached_DataObject unnecessarily require_once'd itself
Evan Prodromou [Fri, 22 Jan 2010 15:46:11 +0000 (10:46 -0500)]
Memcached_DataObject unnecessarily require_once'd itself

14 years agoXMPP queued output & initial retooling of DB queue manager to support non-Notice...
Brion Vibber [Fri, 22 Jan 2010 00:42:50 +0000 (16:42 -0800)]
XMPP queued output & initial retooling of DB queue manager to support non-Notice objects.

Queue handlers for XMPP individual & firehose output now send their XML stanzas
to another output queue instead of connecting directly to the chat server. This
lets us have as many general processing threads as we need, while all actual
XMPP input and output go through a single daemon with a single connection open.

This avoids problems with multiple connected resources:
* multiple windows shown in some chat clients (psi, gajim, kopete)
* extra load on server
* incoming message delivery forwarding issues

Database changes:
* queue_item drops 'notice_id' in favor of a 'frame' blob.
  This is based on Craig Andrews' work branch to generalize queues to take any
  object, but conservatively leaving out the serialization for now.
  Table updater (preserves any existing queued items) in db/rc3to09.sql

Code changes to watch out for:
* Queue handlers should now define a handle() method instead of handle_notice()
* QueueDaemon and XmppDaemon now share common i/o (IoMaster) and respawning
  thread management (RespawningDaemon) infrastructure.
* The polling XmppConfirmManager has been dropped, as the message is queued
  directly when saving IM settings.
* Enable $config['queue']['debug_memory'] to output current memory usage at
  each run through the event loop to watch for memory leaks

To do:
* Adapt XMPP i/o to component connection mode for multi-site support.
* XMPP input can also be broken out to a queue, which would allow the actual
  notice save etc to be handled by general queue threads.
* Make sure there are no problems with simply pushing serialized Notice objects
  to queues.
* Find a way to improve interactive performance of the database-backed queue
  handler; polling is pretty painful to XMPP.
* Possibly redo the way QueueHandlers are injected into a QueueManager. The
  grouping used to split out the XMPP output queue is a bit awkward.

14 years agodrop debug line from xmppdaemon.php, we're done debugging that
Brion Vibber [Fri, 22 Jan 2010 00:34:26 +0000 (16:34 -0800)]
drop debug line from xmppdaemon.php, we're done debugging that

14 years agoQuick hack to avoid breaking with geonames off when there's some old cookie state...
Brion Vibber [Fri, 22 Jan 2010 00:27:08 +0000 (00:27 +0000)]
Quick hack to avoid breaking with geonames off when there's some old cookie state. This code's a little rough and tumble; any breakage halts JS execution and leaves the spinner going and no message submitted.

14 years agoOption to log slow db queries or all db queries
Brion Vibber [Thu, 21 Jan 2010 19:07:52 +0000 (11:07 -0800)]
Option to log slow db queries or all db queries

$config['db']['log_queries'] = true; // all
$config['db']['log_slow_queries'] = 10; // queries taking > 10 seconds

14 years agoUnimplement retweeted_by_me API action until we have a more efficient query
Evan Prodromou [Thu, 21 Jan 2010 16:38:08 +0000 (11:38 -0500)]
Unimplement retweeted_by_me API action until we have a more efficient query

14 years agoretweet API methods are readonly
Evan Prodromou [Thu, 21 Jan 2010 16:32:01 +0000 (11:32 -0500)]
retweet API methods are readonly

14 years agoupdate changes in README
Evan Prodromou [Wed, 20 Jan 2010 22:49:13 +0000 (17:49 -0500)]
update changes in README

14 years agomark retweet api actions read-only where applicable
Evan Prodromou [Wed, 20 Jan 2010 22:00:42 +0000 (17:00 -0500)]
mark retweet api actions read-only where applicable

14 years agoadd class and function doc comments to PuSH plugin
Evan Prodromou [Wed, 20 Jan 2010 21:37:41 +0000 (16:37 -0500)]
add class and function doc comments to PuSH plugin

14 years agowhitespace changes to make phpcs happy for PuSH plugin
Evan Prodromou [Wed, 20 Jan 2010 21:29:11 +0000 (16:29 -0500)]
whitespace changes to make phpcs happy for PuSH plugin

14 years agocorrectly get replies for a notice in PuSH plugin
Evan Prodromou [Wed, 20 Jan 2010 21:16:22 +0000 (16:16 -0500)]
correctly get replies for a notice in PuSH plugin

14 years agouse standard plugin configuration for PubSubHubBub
Evan Prodromou [Wed, 20 Jan 2010 21:13:52 +0000 (16:13 -0500)]
use standard plugin configuration for PubSubHubBub

14 years agoRevert "DEBUG HACK: error checking for xml_parse in XMPPHP input stream"
Evan Prodromou [Wed, 20 Jan 2010 20:56:24 +0000 (15:56 -0500)]
Revert "DEBUG HACK: error checking for xml_parse in XMPPHP input stream"

This reverts commit 906450e2f5b78a1c6f2dec2e21b9b5841df210f4.

1) It was a quick debug hack 2) it doesn't meet the requirements
for changing extlib/ libraries

14 years agoMerge branch 'master' of git@gitorious.org:statusnet/mainline
Evan Prodromou [Wed, 20 Jan 2010 20:51:55 +0000 (15:51 -0500)]
Merge branch 'master' of git@gitorious.org:statusnet/mainline

14 years agoupdate friends, not user, timeline for recipients of notice in PuSH plugin
Evan Prodromou [Wed, 20 Jan 2010 20:43:24 +0000 (15:43 -0500)]
update friends, not user, timeline for recipients of notice in PuSH plugin

14 years agoDEBUG HACK: error checking for xml_parse in XMPPHP input stream
Brion Vibber [Wed, 20 Jan 2010 16:37:58 +0000 (08:37 -0800)]
DEBUG HACK: error checking for xml_parse in XMPPHP input stream

14 years agoExtra debug instrumentation for xmppdaemon
Brion Vibber [Tue, 19 Jan 2010 20:26:59 +0000 (12:26 -0800)]
Extra debug instrumentation for xmppdaemon

14 years agoallow all rights reserved, private data
Evan Prodromou [Tue, 19 Jan 2010 05:04:58 +0000 (00:04 -0500)]
allow all rights reserved, private data

14 years agoMerge branch 'master' of git@gitorious.org:statusnet/mainline
Evan Prodromou [Tue, 19 Jan 2010 04:26:03 +0000 (23:26 -0500)]
Merge branch 'master' of git@gitorious.org:statusnet/mainline

14 years agoadd event for showing content license in action
Evan Prodromou [Tue, 19 Jan 2010 04:25:45 +0000 (23:25 -0500)]
add event for showing content license in action

14 years agoCleanup for memcached host/port split -- apparently we use ';' on purpose, restoring...
Brion Vibber [Sat, 16 Jan 2010 21:39:05 +0000 (13:39 -0800)]
Cleanup for memcached host/port split -- apparently we use ';' on purpose, restoring. Keeping fix for the notices spewing into the log.

14 years agoMerge branch 'master' of gitorious.org:statusnet/mainline
Brion Vibber [Sat, 16 Jan 2010 21:37:49 +0000 (13:37 -0800)]
Merge branch 'master' of gitorious.org:statusnet/mainline

14 years agoMerge branch 'master' of git@gitorious.org:statusnet/mainline
Evan Prodromou [Sat, 16 Jan 2010 15:48:59 +0000 (07:48 -0800)]
Merge branch 'master' of git@gitorious.org:statusnet/mainline

14 years agochange rc3 to beta3
Evan Prodromou [Sat, 16 Jan 2010 15:48:46 +0000 (07:48 -0800)]
change rc3 to beta3

14 years agoFix for background recalculation of groups; needs to get Group objects not IDs; also...
Brion Vibber [Fri, 15 Jan 2010 21:06:21 +0000 (13:06 -0800)]
Fix for background recalculation of groups; needs to get Group objects not IDs; also don't list any groups for repeats to match saveGroups behavior
todo: merge calculation portion with saveGroups so they don't get out of sync

14 years ago--xmpp-only hack for queuedaemon.php to run separate queue daemon with only xmpp...
Brion Vibber [Fri, 15 Jan 2010 19:13:06 +0000 (11:13 -0800)]
--xmpp-only hack for queuedaemon.php to run separate queue daemon with only xmpp threads

14 years agoFix since_id and max_id API parameters for inbox-based loads; was failing if the...
Brion Vibber [Fri, 15 Jan 2010 18:01:50 +0000 (10:01 -0800)]
Fix since_id and max_id API parameters for inbox-based loads; was failing if the exact id mentioned wasn't present in the inbox (or had been trimmed out)

14 years agofix for --skip-xmpp hack -- forgot to do it on the ping & confirm handlers
Brion Vibber [Fri, 15 Jan 2010 01:14:41 +0000 (17:14 -0800)]
fix for --skip-xmpp hack -- forgot to do it on the ping & confirm handlers

14 years agotemporary --skip-xmpp flag on queuedaemon.php, allows to run queue daemons but skip...
Brion Vibber [Thu, 14 Jan 2010 23:32:37 +0000 (15:32 -0800)]
temporary --skip-xmpp flag on queuedaemon.php, allows to run queue daemons but skip subscription to xmpp-based queues
(still working on making these behave gracefully when server is down)

14 years agoClean up host/port separation in memcached plugin -- use : not ; as separator and...
Brion Vibber [Thu, 14 Jan 2010 22:07:24 +0000 (14:07 -0800)]
Clean up host/port separation in memcached plugin -- use : not ; as separator and clean up some warnings

14 years agoKeep handler registration per-site to fix queue registration in mixed config environment
Brion Vibber [Thu, 14 Jan 2010 08:19:25 +0000 (00:19 -0800)]
Keep handler registration per-site to fix queue registration in mixed config environment

14 years agoMerge branch 'master' of gitorious.org:statusnet/mainline
Brion Vibber [Thu, 14 Jan 2010 07:39:39 +0000 (23:39 -0800)]
Merge branch 'master' of gitorious.org:statusnet/mainline

14 years agoDon't barf on io loop if xmpp connection failed
Brion Vibber [Thu, 14 Jan 2010 07:38:51 +0000 (23:38 -0800)]
Don't barf on io loop if xmpp connection failed

14 years agoremove debugging statement for friends_timeline
Evan Prodromou [Thu, 14 Jan 2010 07:28:51 +0000 (23:28 -0800)]
remove debugging statement for friends_timeline

14 years agochange double quotes to single quotes in numbered format string
Evan Prodromou [Thu, 14 Jan 2010 07:17:37 +0000 (23:17 -0800)]
change double quotes to single quotes in numbered format string

14 years agodo since_id and max_id in inbox
Evan Prodromou [Thu, 14 Jan 2010 06:32:17 +0000 (22:32 -0800)]
do since_id and max_id in inbox

14 years agogo straight to the DB for inbox before insert
Evan Prodromou [Thu, 14 Jan 2010 06:12:19 +0000 (22:12 -0800)]
go straight to the DB for inbox before insert

14 years agofix for non-% memory soft limit
Brion Vibber [Thu, 14 Jan 2010 05:35:47 +0000 (21:35 -0800)]
fix for non-% memory soft limit

14 years agoqueue daemon fixes: path fix for xmpp, suppress warning in memcached init
Brion Vibber [Thu, 14 Jan 2010 05:24:02 +0000 (21:24 -0800)]
queue daemon fixes: path fix for xmpp, suppress warning in memcached init

14 years agoactually use the user id instead of 0 ;)
Brion Vibber [Thu, 14 Jan 2010 04:46:44 +0000 (20:46 -0800)]
actually use the user id instead of 0 ;)

14 years agoin case we have cached 'fake' inboxes, make sure we rebuild them running initializein...
Brion Vibber [Thu, 14 Jan 2010 04:30:42 +0000 (20:30 -0800)]
in case we have cached 'fake' inboxes, make sure we rebuild them running initializeinbox.php

14 years agoGracefully skip missing user entries when initializing inboxes in bulk
Brion Vibber [Thu, 14 Jan 2010 04:11:00 +0000 (20:11 -0800)]
Gracefully skip missing user entries when initializing inboxes in bulk

14 years agoMerge branch 'testing'
Evan Prodromou [Thu, 14 Jan 2010 02:32:44 +0000 (18:32 -0800)]
Merge branch 'testing'

14 years agoaccept file for initializeinbox.php
Evan Prodromou [Thu, 14 Jan 2010 02:28:08 +0000 (18:28 -0800)]
accept file for initializeinbox.php

14 years agoMerge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x
Sarven Capadisli [Thu, 14 Jan 2010 01:50:21 +0000 (01:50 +0000)]
Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x

14 years agoUpdate geo location UI for notice form where the geo data info is only
Sarven Capadisli [Thu, 14 Jan 2010 01:48:57 +0000 (01:48 +0000)]
Update geo location UI for notice form where the geo data info is only
visible on @title of the enable/disable button.

14 years agoMerge branch 'master' of git@gitorious.org:statusnet/mainline
Evan Prodromou [Thu, 14 Jan 2010 01:40:39 +0000 (17:40 -0800)]
Merge branch 'master' of git@gitorious.org:statusnet/mainline

14 years agoMerge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x
Evan Prodromou [Thu, 14 Jan 2010 01:30:22 +0000 (17:30 -0800)]
Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x

14 years agorev version in lib/common.php
Evan Prodromou [Thu, 14 Jan 2010 01:29:58 +0000 (17:29 -0800)]
rev version in lib/common.php

14 years agoscript to upgrade from RC2 to RC3
Evan Prodromou [Thu, 14 Jan 2010 01:28:31 +0000 (17:28 -0800)]
script to upgrade from RC2 to RC3

14 years agoFix for dbqueuehandler: if a queue is unrecognized, discard entries rather than attem...
Brion Vibber [Thu, 14 Jan 2010 00:33:03 +0000 (16:33 -0800)]
Fix for dbqueuehandler: if a queue is unrecognized, discard entries rather than attempting to re-run them forever!

14 years agodon't write Inbox if on a read-only page, but encache
Evan Prodromou [Thu, 14 Jan 2010 00:26:46 +0000 (16:26 -0800)]
don't write Inbox if on a read-only page, but encache

14 years agoMerge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x
Evan Prodromou [Thu, 14 Jan 2010 00:19:35 +0000 (16:19 -0800)]
Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x

14 years agoremove session info in syslog
Evan Prodromou [Thu, 14 Jan 2010 00:19:20 +0000 (16:19 -0800)]
remove session info in syslog

14 years agoUpdate generation of YAML files
Siebrand Mazeland [Wed, 13 Jan 2010 22:33:05 +0000 (23:33 +0100)]
Update generation of YAML files
* need lower case in some places
* update target path

Not in production yet at translatewiki.net - need some Translate extension code changes to get YAML config support for Gettext first.

14 years agoMerge branch '0.9.x' of git://gitorious.org/statusnet/mainline into 0.9.x
Siebrand Mazeland [Wed, 13 Jan 2010 22:10:00 +0000 (23:10 +0100)]
Merge branch '0.9.x' of git://gitorious.org/statusnet/mainline into 0.9.x

14 years agoUpdate line endings
Siebrand Mazeland [Wed, 13 Jan 2010 22:09:49 +0000 (23:09 +0100)]
Update line endings

14 years agoLocalisation updates for !StatusNet from !translatewiki.net !sntrans
Siebrand Mazeland [Wed, 13 Jan 2010 22:09:23 +0000 (23:09 +0100)]
Localisation updates for !StatusNet from !translatewiki.net !sntrans

14 years agoMerge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x
Sarven Capadisli [Wed, 13 Jan 2010 21:13:21 +0000 (21:13 +0000)]
Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x

14 years agoChanged to margin instead of list position in order to avoid text
Sarven Capadisli [Wed, 13 Jan 2010 21:07:01 +0000 (21:07 +0000)]
Changed to margin instead of list position in order to avoid text
wrapping from the bullet point

14 years agoMerge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x
Evan Prodromou [Wed, 13 Jan 2010 20:37:10 +0000 (12:37 -0800)]
Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x

14 years agomake sure whoGets() doesn't write anything
Evan Prodromou [Wed, 13 Jan 2010 20:37:01 +0000 (12:37 -0800)]
make sure whoGets() doesn't write anything

14 years agoMade the IMAP plugin work in the style of the new queue/iomanagers
Craig Andrews [Wed, 13 Jan 2010 20:35:53 +0000 (15:35 -0500)]
Made the IMAP plugin work in the style of the new queue/iomanagers

14 years agoMerge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x
Zach Copley [Wed, 13 Jan 2010 19:17:49 +0000 (19:17 +0000)]
Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x

14 years agoWhen Twitter bridge encounters a 403 (rate limit) err, drop the notice
Zach Copley [Wed, 13 Jan 2010 19:15:54 +0000 (19:15 +0000)]
When Twitter bridge encounters a 403 (rate limit) err, drop the notice
instead of requeuing.

14 years agoWhen Twitter bridge encounters a 403 (rate limit) err, drop the notice
Zach Copley [Wed, 13 Jan 2010 19:15:54 +0000 (19:15 +0000)]
When Twitter bridge encounters a 403 (rate limit) err, drop the notice
instead of requeuing.

14 years agoFix regressions in XMPP output during inbox refactoring
Brion Vibber [Wed, 13 Jan 2010 18:17:36 +0000 (18:17 +0000)]
Fix regressions in XMPP output during inbox refactoring
- NOTICE_INBOX_SOURCE_* constants moved to common.php since Notice_inbox.php not always loaded
- fixed typo in User::staticGet() call which caused user #1 to receive messages once for each subscriber instead of for him/herself
- 'continue' -> 'continue 2' inside switch() statement to fix loop escape (PHP considers switch() a looping construct for break & continue)

14 years agoUnchecks location sharing for geo location if it timesout
Sarven Capadisli [Wed, 13 Jan 2010 15:51:32 +0000 (15:51 +0000)]
Unchecks location sharing for geo location if it timesout

14 years agoTimeout should be 10000, not 10
Sarven Capadisli [Wed, 13 Jan 2010 15:50:45 +0000 (15:50 +0000)]
Timeout should be 10000, not 10

Revert "Unchecks location sharing for geo location if it timesout"

This reverts commit 8887d7a314bdbf4e4fc6ca26addf5ce28284d697.

14 years agoUnchecks location sharing for geo location if it timesout
Sarven Capadisli [Wed, 13 Jan 2010 15:48:26 +0000 (15:48 +0000)]
Unchecks location sharing for geo location if it timesout

14 years agoAdded timeout error handling for geo location
Sarven Capadisli [Wed, 13 Jan 2010 15:36:42 +0000 (15:36 +0000)]
Added timeout error handling for geo location

14 years agoUsing a JSON object for NoticeDataGeo text instead
Sarven Capadisli [Wed, 13 Jan 2010 15:21:43 +0000 (15:21 +0000)]
Using a JSON object for NoticeDataGeo text instead

14 years agoMerge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x
Sarven Capadisli [Wed, 13 Jan 2010 13:37:04 +0000 (13:37 +0000)]
Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x

14 years agoMerge branch 'subthrottle' into 0.9.x
Evan Prodromou [Wed, 13 Jan 2010 11:11:44 +0000 (03:11 -0800)]
Merge branch 'subthrottle' into 0.9.x

14 years agothrottle subscriptions
Evan Prodromou [Wed, 13 Jan 2010 11:11:31 +0000 (03:11 -0800)]
throttle subscriptions

14 years agocorrect check for error in subscribe and unsubscribe actions
Evan Prodromou [Wed, 13 Jan 2010 11:01:22 +0000 (03:01 -0800)]
correct check for error in subscribe and unsubscribe actions

14 years agoadd events for subscribing to people and joining groups
Evan Prodromou [Wed, 13 Jan 2010 10:16:13 +0000 (02:16 -0800)]
add events for subscribing to people and joining groups

14 years agorefactor jabber broadcast for notice_inbox removal
Evan Prodromou [Wed, 13 Jan 2010 09:13:49 +0000 (01:13 -0800)]
refactor jabber broadcast for notice_inbox removal

14 years agoDon't save reply info for repeats
Evan Prodromou [Wed, 13 Jan 2010 09:13:06 +0000 (01:13 -0800)]
Don't save reply info for repeats

14 years agorepeats don't get posted to groups
Evan Prodromou [Wed, 13 Jan 2010 08:47:12 +0000 (00:47 -0800)]
repeats don't get posted to groups

14 years agoremove vestiges of Notice_inbox from cache clearing code in Notice
Evan Prodromou [Wed, 13 Jan 2010 08:45:12 +0000 (00:45 -0800)]
remove vestiges of Notice_inbox from cache clearing code in Notice

14 years agounimplement repeatedToMe() until we figure out how
Evan Prodromou [Wed, 13 Jan 2010 08:44:29 +0000 (00:44 -0800)]
unimplement repeatedToMe() until we figure out how

14 years agoadd a script for initializing inboxes
Evan Prodromou [Wed, 13 Jan 2010 08:25:43 +0000 (00:25 -0800)]
add a script for initializing inboxes

14 years agomemoize Notice::whoGets()
Evan Prodromou [Wed, 13 Jan 2010 08:16:54 +0000 (00:16 -0800)]
memoize Notice::whoGets()

14 years agoMerge branch '0.9.x' into inblob
Evan Prodromou [Wed, 13 Jan 2010 07:58:32 +0000 (23:58 -0800)]
Merge branch '0.9.x' into inblob

14 years agoremove some debugging statements from util.php
Evan Prodromou [Wed, 13 Jan 2010 07:58:25 +0000 (23:58 -0800)]
remove some debugging statements from util.php

14 years agows changes for phpcs
Evan Prodromou [Wed, 13 Jan 2010 07:56:21 +0000 (23:56 -0800)]
ws changes for phpcs

14 years agoMerge branch '0.9.x' into inblob
Evan Prodromou [Wed, 13 Jan 2010 07:53:52 +0000 (23:53 -0800)]
Merge branch '0.9.x' into inblob

14 years agoremove transaction for Notice save; causes deadlocks
Evan Prodromou [Wed, 13 Jan 2010 07:41:33 +0000 (23:41 -0800)]
remove transaction for Notice save; causes deadlocks

14 years agoMerge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x
Evan Prodromou [Wed, 13 Jan 2010 07:25:25 +0000 (23:25 -0800)]
Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.x

14 years agoMajor refactoring of queue handlers to support running multiple sites in one daemon.
Brion Vibber [Wed, 13 Jan 2010 03:57:15 +0000 (19:57 -0800)]
Major refactoring of queue handlers to support running multiple sites in one daemon.

Key changes:
* Initialization code moved from common.php to StatusNet class;
  can now switch configurations during runtime.
* As a consequence, configuration files must now be idempotent...
  Be careful with constant, function or class definitions.
* Control structure for daemons/QueueManager/QueueHandler has been refactored;
  the run loop is now managed by IoMaster run via scripts/queuedaemon.php
  IoManager subclasses are woken to handle socket input or polling, and may
  cover multiple sites.
* Plugins can implement notice queue handlers more easily by registering a
  QueueHandler class; no more need to add a daemon.

The new QueueDaemon runs from scripts/queuedaemon.php:

* This replaces most of the old *handler.php scripts; they've been refactored
  to the bare handler classes.
* Spawns multiple child processes to spread load; defaults to CPU count on
  Linux and Mac OS X systems, or override with --threads=N
* When multithreaded, child processes are automatically respawned on failure.
* Threads gracefully shut down and restart when passing a soft memory limit
  (defaults to 90% of memory_limit), limiting damage from memory leaks.
* Support for UDP-based monitoring: http://www.gitorious.org/snqmon

Rough control flow diagram:
QueueDaemon -> IoMaster -> IoManager
                           QueueManager [listen or poll] -> QueueHandler
                           XmppManager [ping & keepalive]
                           XmppConfirmManager [poll updates]

Todo:

* Respawning features not currently available running single-threaded.
* When running single-site, configuration changes aren't picked up.
* New sites or config changes affecting queue subscriptions are not yet
  handled without a daemon restart.
* SNMP monitoring output to integrate with general tools (nagios, ganglia)
* Convert XMPP confirmation message sends to use stomp queue instead of polling
* Convert xmppdaemon.php to IoManager?
* Convert Twitter status, friends import polling daemons to IoManager
* Clean up some error reporting and failure modes
* May need to adjust queue priorities for best perf in backlog/flood cases

Detailed code history available in my daemon-work branch:
http://www.gitorious.org/~brion/statusnet/brion-fixes/commits/daemon-work

14 years agoAvoid PHP notice when outputting API data for remote users; no $user means no $user...
Brion Vibber [Tue, 12 Jan 2010 20:26:08 +0000 (12:26 -0800)]
Avoid PHP notice when outputting API data for remote users; no $user means no $user->timezone :)

Trying to get property of non-object (/srv/com.leuksman.status/lib/api.php:171)

14 years agoAvoid spewing warnings about returning by reference on memcached cache misses by...
Brion Vibber [Tue, 12 Jan 2010 20:20:45 +0000 (12:20 -0800)]
Avoid spewing warnings about returning by reference on memcached cache misses by setting a var and returning it instead of trying to return false directly.
This hacky workaround is brought to you by DB_DataObject's PHP 4 roots.

14 years agoActually skip the pingback if XML-RPC extension is missing, instead of considering...
Brion Vibber [Tue, 12 Jan 2010 20:12:31 +0000 (12:12 -0800)]
Actually skip the pingback if XML-RPC extension is missing, instead of considering it then trying anyway and dying of a fatal error. :)