Twitterbridge and PEAR DB Errors.

empemp
edited November 2011 in General
Hi!

My problem = I can't get twitterbridge to work at my 1.0.1 install.

This is what and how i did.

I first registered an app at twitter and enabled it in config.php like this

addPlugin(
'TwitterBridge',
array(
'consumer_key' => 'blahblah_key_blahblah',
'consumer_secret' => 'blahbla_secret_blahblablahblah'
)
);

Then made a restart of apache to clear memcached and executed scripts/checkschema.php.

But still I get these errors when trying to start scripts/startdaemons.sh.

example...

[root@myserver /statusnet ]# sh scripts/startdaemons.sh

Starting /statusnet/plugins/TwitterBridge/daemons/synctwitterfriends.php...

Fatal error: Uncaught PEAR_Exception: DB Error: no database selected in unknown on line unknown
DB_Error: DB Error: no database selected in unknown on line unknown
#0 [internal function]: PEAR_ErrorToPEAR_Exception(Object(DB_Error))
#1 /statusnet/extlib/PEAR.php(890): call_user_func('PEAR_ErrorToPEA...', Object(DB_Error))
#2 /statusnet/extlib/DB.php(966): PEAR_Error->PEAR_Error('DB Error: no da...', -14, 16, 'PEAR_ErrorToPEA...', 'SELECT * ? FROM...')
#3 /statusnet/extlib/PEAR.php(531): DB_Error->DB_Error(-14, 16, 'PEAR_ErrorToPEA...', 'SELECT * ? FROM...')
#4 /statusnet/extlib/DB/common.php(1908): PEAR->raiseError(NULL, -14, NULL, NULL, 'SELECT * ? FROM...', 'DB_Error', true)
#5 /statusnet/extlib/DB/mysqli.php(928): DB_common->raiseError(-14, NULL, NULL, NULL, '2006 ** MySQL s...')
#6 /statusnet/extlib/DB/mysqli.php(387): DB_mysqli->mysqliRaiseError(-14)
#7 /statusnet/extlib/DB/common.php(1216): DB_mysqli->simpleQuery('SELECT * ? FROM... in /statusnet/lib/framework.php on line 163
DONE.

Starting /statusnet/plugins/TwitterBridge/daemons/twitterstatusfetcher.php...

Fatal error: Uncaught PEAR_Exception: DB Error: no database selected in unknown on line unknown
DB_Error: DB Error: no database selected in unknown on line unknown
#0 [internal function]: PEAR_ErrorToPEAR_Exception(Object(DB_Error))
#1 /statusnet/extlib/PEAR.php(890): call_user_func('PEAR_ErrorToPEA...', Object(DB_Error))
#2 /statusnet/extlib/DB.php(966): PEAR_Error->PEAR_Error('DB Error: no da...', -14, 16, 'PEAR_ErrorToPEA...', 'SELECT * ? FROM...')
#3 /statusnet/extlib/PEAR.php(531): DB_Error->DB_Error(-14, 16, 'PEAR_ErrorToPEA...', 'SELECT * ? FROM...')
#4 /statusnet/extlib/DB/common.php(1908): PEAR->raiseError(NULL, -14, NULL, NULL, 'SELECT * ? FROM...', 'DB_Error', true)
#5 /statusnet/extlib/DB/mysqli.php(928): DB_common->raiseError(-14, NULL, NULL, NULL, '2006 ** MySQL s...')
#6 /statusnet/extlib/DB/mysqli.php(387): DB_mysqli->mysqliRaiseError(-14)
#7 /statusnet/extlib/DB/common.php(1216): DB_mysqli->simpleQuery('SELECT * ? FROM... in /statusnet/lib/framework.php on line 163
DONE.
_________________________________________________

I recently upgraded to statusnet 1.0.1 and my database is a updated version of 0.9.7 db.

As said, I have already tried checkschema.php and upgrade.php.

If anyone knows how to fix this, Please let me know! <3

/emp

Comments

  • Hi,

    I have the same problem. Any clue ?

    fran'
  • Hulloh! I just answered this in another thread: http://forum.status.net/discussion/1689/enabling-twitter-with-1.0.0alpha5-throws-pear-db-errors.

    My environment included running the site in php-cgi but running daemons (of course) through php-cli, under later versions of Ubuntu.

    The default settings for mysqli.reconnect in /etc/php5/cgi/php.ini was:
    mysqli.reconnect = On
    while the CLI version of PHP had:
    mysqli.reconnect = Off

    Setting the PHP5 CLI .ini to have mysqli reconnect enabled fixed the issue of the scripts disconnecting from the database, which I believe may be your problem too!

    ----
    Also if you have odd vhost paths you should see if you might have the same problem as I did with % and the function 'printf' in startdaemons.sh (I just changed it to echo, or it reported a bunch of jibberish)
  • yeah! mysqli.reconnect = On solved the problem, no more pear db errors. Thanks a lot!
  • I'm getting these (or similar) errors now, and my php.ini, in both /etc/php5/apache2 and /cli have mysqli.reconnect = On

    errors look like:
    PHP Fatal error: Uncaught PEAR_Exception: DB Error: already exists in unknown on line unknown
    #0 [internal function]: PEAR_ErrorToPEAR_Exception(Object(DB_Error))
    #1 /var/www/status/extlib/PEAR.php(890): call_user_func('PEAR_ErrorToPEA...', Object(DB_Error))
    #2 /var/www/status/extlib/DB.php(966): PEAR_Error->PEAR_Error('DB Error: alrea...', -5, 16, 'PEAR_ErrorToPEA...', 'INSERT INTO for...')
    #3 /var/www/status/extlib/PEAR.php(531): DB_Error->DB_Error(-5, 16, 'PEAR_ErrorToPEA...', 'INSERT INTO for...')
    #4 /var/www/status/extlib/DB/common.php(1908): PEAR->raiseError(NULL, -5, NULL, NULL, 'INSERT INTO for...', 'DB_Error', true)
    #5 /var/www/status/extlib/DB/mysqli.php(928): DB_common->raiseError(-5, NULL, NULL, NULL, '1062 ** Duplica...')
    #6 /var/www/status/extlib/DB/mysqli.php(402): DB_mysqli->mysqliRaiseError()
    #7 /var/www/status/extlib/DB/common.php(1216): DB_mysqli->simpleQuery('INSERT INTO for...')
    #8 /var/www/status/extlib/DB/DataObject.php(2550): DB_common->query('INSERT INTO for...')
    #9 /var/www/status/classes/Memcached_D in /var/www/status/lib/framework.php on line 172



    Today I dumped the db, then ran some experimental mysql queries while writing a script to delete posts older than 3 months (http://tonyb.us/cm to keep db from growing infinitely and conserve storage), and at one point deleted all posts (doh!). Then I restored from the dump, and it is after this that I am seeing these errors.

    I have up-to-date code, pulled from gitorious today.
  • I'm still getting these. Anyone?
  • I gave up on the twitter bridge because it threw so many errors that it prevented the daemons from running.
  • It seems to give up and die, randomly, and I go back in an restart it.

    Lately it is constantly giving this error:
    PHP Fatal error: Function name must be a string in /var/www/status/plugins/TwitterBridge/twitterimport.php on line 436

    line 436 of said file is simply:
    common_log(LOG_WARNING, $id() .

    Part of this function:
    417 function saveAvatars($user, $id)
    418 {
    419 global $config;
    420
    421 $path_parts = pathinfo($user->profile_image_url);
    422 $ext = $path_parts['extension'];
    423 $end = strlen('_normal' . $ext);
    424 $img_root = substr($path_parts['basename'], 0, -($end+1));
    425 $mediatype = $this->getMediatype($ext);
    426
    427 foreach (array('mini', 'normal', 'bigger') as $size) {
    428 $url = $path_parts['dirname'] . '/' .
    429 $img_root . '_' . $size . ".$ext";
    430 $filename = 'Twitter_' . $user->id . '_' .
    431 $img_root . "_$size.$ext";
    432
    433 if ($this->fetchAvatar($url, $filename)) {
    434 $this->newAvatar($id, $size, $mediatype, $filename);
    435 } else {
    436 common_log(LOG_WARNING, $id() .
    437 " - Problem fetching Avatar: $url");
    438 }
    439 }
    440 }
  • edited May 2012
    I've started a new thread in here [1] since I thought my issue was unrelated to yours. But I get the same PEAR db errors. PHP 5.4, mysqli_reconnect = On.

    The biggest difference between our problems is that you can run scripts/startdaemons.sh and the twitterbridge daemons will get launched, thus throwing the PHP PEAR errors. In my case, scripts/getvaliddaemons.php doesn't print the twitter ones at all.

    [1] http://forum.status.net/discussion/2208/cant-get-scriptsgetvaliddaemons-php-to-give-the-twitterbridge-daemons
  • To anyone having these issues on 1.0.1 or above - Add this to your config.php:
    $config['db']['schemacheck'] = 'script';
    With it, all my errors were gone.

    Remember to have mysqli_reconnect = On on your php.ini, and to have the proper mysqli:// database address on your config.php.

    Good luck!
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!