I reset my configs to standalone while I sort through things. However, I just ran memstat from scanner B to A and results came back fine, as if I ran it local.

Curious, did you change all 127.0.0.1 lines in production.ini to point to the main scanner? Would be interested in what you found to work.




On 02/18/2013 03:58 PM, Mark Chaney wrote:
I am not getting that error. Have you confirmed with memecached-tool that Server B is connecting ok to server A? Also, while I have your attention, did you add Server A to Server A when adding nodes? Seems thats the only way to get the stats to show up (though they are showing as no processes) for server A.

On 2013-02-18 14:26, Raymond Norton wrote:
Baruwa kicks out a WebApp error email:





URL: http://relay-3.domain.com/.json?_=1360876657972
Module weberror.errormiddleware:162 in __call__
<<              __traceback_supplement__ = Supplement, self, environ
                   sr_checker = ResponseStartChecker(start_response)
                   app_iter = self.application(environ, sr_checker)
return self.make_catching_iter(app_iter, environ, sr_checker)
               except:
 app_iter = self.application(environ, sr_checker)
Module repoze.who.middleware:107 in __call__
<<          wrapper = StartResponseWrapper(start_response)
               app_iter = app(environ, wrapper.wrap_start_response)

               # The challenge decider almost(?) always needs
information from the
 app_iter = app(environ, wrapper.wrap_start_response)
Module beaker.middleware:155 in __call__
<<                          headers.append(('Set-cookie', cookie))
                   return start_response(status, headers, exc_info)
               return self.wrap_app(environ, session_start_response)

           def _get_session(self):
 return self.wrap_app(environ, session_start_response)
Module routes.middleware:131 in __call__
<<                                               r'\1', oldpath)

               response = self.app(environ, start_response)

               # Wrapped in try as in rare cases the attribute will
be gone already
 response = self.app(environ, start_response)
Module pylons.wsgiapp:103 in __call__
<<          controller = self.resolve(environ, start_response)
response = self.dispatch(controller, environ, start_response)

               response_obj = callable(response)
 response = self.dispatch(controller, environ, start_response)
Module pylons.wsgiapp:313 in dispatch
<<          if log_debug:
log.debug("Calling controller class with WSGI interface")
               return controller(environ, start_response)

           def load_test_env(self, environ):
 return controller(environ, start_response)
Module baruwa.lib.base:81 in __call__
<<                  totals = DailyTotals(Session, self.identity['user'])
                       mailq = MailQueue(Session, self.identity['user'])
                       c.baruwa_totals = totals.get()
                       c.baruwa_inbound = mailq.get(1)[0]
                       c.baruwa_outbound = mailq.get(2)[0]
 c.baruwa_totals = totals.get()
Module baruwa.lib.query:293 in get
<< cachekey = 'dailytotals-%s-%s' % (self.user.username, hostname)
               self.query =
self.query.options(FromCache('sql_cache_short', cachekey))
               return self.query.one()
 return self.query.one()
Module sqlalchemy.orm.query:2209 in one
<<          """
               ret = list(self)

               l = len(ret)
 ret = list(self)
Module baruwa.lib.caching_query:75 in __iter__
<<          """
               if hasattr(self, '_cache_parameters'):
                   return self.get_value(createfunc=lambda:
list(Query.__iter__(self)))
               else:
                   return Query.__iter__(self)
 return self.get_value(createfunc=lambda: list(Query.__iter__(self)))
Module baruwa.lib.caching_query:94 in get_value
<<          cache, cache_key = _get_cache_parameters(self)
               #cache_key = cache_key[:249]
ret = cache.get_value(str(cache_key), createfunc=createfunc)
               if merge:
                   ret = self.merge_result(ret, load=False)
 ret = cache.get_value(str(cache_key), createfunc=createfunc)
Module beaker.cache:305 in get
<<      def get(self, key, **kw):
               """Retrieve a cached value from the container"""
               return self._get_value(key, **kw).get_value()
           get_value = get
 return self._get_value(key, **kw).get_value()
Module beaker.container:339 in get_value
<<          self.namespace.acquire_read_lock()
               try:
                   has_value = self.has_value()
                   if has_value:
                       try:
 has_value = self.has_value()
Module beaker.container:301 in has_value
<<          self.namespace.acquire_read_lock()
               try:
                   return self.key in self.namespace
               finally:
                   self.namespace.release_read_lock()
 return self.key in self.namespace
Module beaker.ext.memcached:176 in __contains__
<<      def __contains__(self, key):
               with self.pool.reserve() as mc:
                   value = mc.get(self._format_key(key))
                   return value is not None
 value = mc.get(self._format_key(key))
UnknownReadFailure: error 7 from
memcached_get(dailytotals-root-None_count(mess): UNKNOWN READ FAILURE
CGI Variables
AUTH_TYPE     'cookie'
DOCUMENT_ROOT     '/etc/apache2/htdocs'
GATEWAY_INTERFACE     'CGI/1.1'
HTTP_ACCEPT     'application/json, text/javascript, */*; q=0.01'
HTTP_ACCEPT_ENCODING     'gzip, deflate'
HTTP_ACCEPT_LANGUAGE     'en-us,en;q=0.5'
HTTP_CONNECTION     'keep-alive'
HTTP_COOKIE

'baruwa=581b94e37004f54d7b954bc0de3bf99b6a087303258fa4fcb65c48e693dae9f865827ce6;

baruwaauth="593b87ba20bdc4cab5ed7ade0ef566d2511d15f0root!<repoze.who.plugins.sa.SQLAlchemyAuthenticatorPlugin
object at 0x7f29821c35d0>,!userid_type:unicode";

baruwaauth="593b87ba20bdc4cab5ed7ade0ef566d2511d15f0root!<repoze.who.plugins.sa.SQLAlchemyAuthenticatorPlugin
object at 0x7f29821c35d0>,!userid_type:unicode"'
HTTP_HOST     'relay-3.domain.com'
HTTP_REFERER     'http://relay-3.domain.com/'
HTTP_USER_AGENT     'Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:11.0)
Gecko/20100101 Firefox/11.0'
HTTP_X_LAST_TIMESTAMP     'Thursday, 14 Feb 2013 21:16:30 +00'
HTTP_X_REQUESTED_WITH     'XMLHttpRequest'
PATH_INFO     '/.json'
PATH_TRANSLATED

'/home/baruwa/px/lib/python2.7/site-packages/baruwa/baruwa.wsgi/.json'
QUERY_STRING     '_=1360876657972'
REMOTE_ADDR     '10.10.1.22'
REMOTE_PORT     '36080'
REMOTE_USER     u'root'
REMOTE_USER_DATA     'userid_type:unicode'
REMOTE_USER_TOKENS
['<repoze.who.plugins.sa.SQLAlchemyAuthenticatorPlugin object at
0x7f29821c35d0>', '']
REQUEST_METHOD     'GET'
REQUEST_URI     '/.json?_=1360876657972'
SCRIPT_FILENAME
'/home/baruwa/px/lib/python2.7/site-packages/baruwa/baruwa.wsgi'
SERVER_ADDR     '10.10.1.42'
SERVER_ADMIN     '[no address given]'
SERVER_NAME     'relay-3.domain.com'
SERVER_PORT     '80'
SERVER_PROTOCOL     'HTTP/1.1'
SERVER_SIGNATURE     '<address>Apache/2.2.22 (Ubuntu) Server at
relay-3.domain.com Port 80</address>\n'
SERVER_SOFTWARE     'Apache/2.2.22 (Ubuntu)'
WSGI Variables
application <baruwa.lib.auth.middleware.BaruwaPAM object at 0x7f97a8bcdad0>
beaker.get_session <bound method SessionMiddleware._get_session of
<beaker.middleware.SessionMiddleware object at 0x7f97ab157590>>
beaker.session     {'_accessed_time': 1360876658.376974,
'_creation_time': 1360876658.376974}
mod_wsgi.application_group     'relay-3.domain.com|'
mod_wsgi.callable_object     'application'
mod_wsgi.handler_script     ''
mod_wsgi.input_chunked     '0'
mod_wsgi.listener_host     ''
mod_wsgi.listener_port     '80'
mod_wsgi.process_group     ''
mod_wsgi.request_handler     'wsgi-script'
mod_wsgi.script_reloading     '1'
mod_wsgi.version     (3, 3)
paste.cookies     (<SimpleCookie:

baruwa='581b94e37004f54d7b954bc0de3bf99b6a087303258fa4fcb65c48e693dae9f865827ce6'

baruwaauth='593b87ba20bdc4cab5ed7ade0ef566d2511d15f0root!<repoze.who.plugins.sa.SQLAlchemyAuthenticatorPlugin
object at 0x7f29821c35d0>,!userid_type:unicode'>,

'baruwa=581b94e37004f54d7b954bc0de3bf99b6a087303258fa4fcb65c48e693dae9f865827ce6;

baruwaauth="593b87ba20bdc4cab5ed7ade0ef566d2511d15f0root!<repoze.who.plugins.sa.SQLAlchemyAuthenticatorPlugin
object at 0x7f29821c35d0>,!userid_type:unicode";

baruwaauth="593b87ba20bdc4cab5ed7ade0ef566d2511d15f0root!<repoze.who.plugins.sa.SQLAlchemyAuthenticatorPlugin
object at 0x7f29821c35d0>,!userid_type:unicode"')
paste.parsed_dict_querystring     (MultiDict([('_',
'1360876657972')]), '_=1360876657972')
paste.parsed_querystring ([('_', '1360876657972')], '_=1360876657972')
paste.registry <paste.registry.Registry object at 0x7f97aa8c2fd0>
paste.throw_errors     True
pylons.controller <baruwa.controllers.messages.MessagesController
object at 0x7f97acbd4a10>
pylons.environ_config {'session': 'beaker.session', 'cache': 'beaker.cache'}
pylons.log_debug     False
pylons.pylons <pylons.util.PylonsContext object at 0x7f97acbd4d10>
pylons.routes_dict     {'action': u'index', 'controller':
u'messages', 'format': u'json'}
repoze.what.adapters     {'groups': {}, 'permissions': {}}
repoze.what.credentials     {'repoze.what.userid': u'root', 'groups':
(), 'permissions': ()}
repoze.who.identity <repoze.who identity (hidden, dict-like) at 140289378677680>
repoze.who.logger     None
repoze.who.plugins     {'authorization_md':
<repoze.what.middleware.AuthorizationMetadata object at
0x7f97ab271f90>, 'form': <FriendlyFormPlugin 140289387152400>,
'baruwa_pop3_auth': <baruwa.lib.auth.pop3auth.BaruwaPOPAuthPlugin
object at 0x7f97ab200990>, 'baruwa_smtp_auth':
<baruwa.lib.auth.smtpauth.BaruwaSMTPAuthPlugin object at
0x7f97ab200890>, 'baruwa_radius_auth':
<baruwa.lib.auth.radiusauth.BaruwaRadiusAuthPlugin object at
0x7f97ab16c690>, 'sa_auth':
<repoze.who.plugins.sa.SQLAlchemyAuthenticatorPlugin object at
0x7f97ab1645d0>, 'auth_tkt': <AuthTktCookiePlugin 140289388203344>,
'baruwa_imap_auth': <baruwa.lib.auth.imapauth.BaruwaIMAPAuthPlugin
object at 0x7f97ab24c350>, 'sa_md':
<repoze.who.plugins.sa.SQLAlchemyUserMDPlugin object at
0x7f97ab255210>, 'baruwa_ldap_auth': <BaruwaLDAPAuthPlugin
140289387153936>}
routes.route <routes.route.Route object at 0x7f97aaf05e90>
routes.url <routes.util.URLGenerator object at 0x7f97aa8c2750>
webob._parsed_query_vars     (GET([(u'_', u'1360876657972')]),
'_=1360876657972')
wsgi process     'Multiprocess'
wsgi.file_wrapper <built-in method file_wrapper of mod_wsgi.Adapter
object at 0x7f97acaa9210>
wsgi.version     (1, 1)
wsgiorg.routing_args     (<routes.util.URLGenerator object at
0x7f97aa8c2750>, {'action': u'index', 'controller': u'messages',
'format': u'json'})




On 02/18/2013 02:12 PM, Mark Chaney wrote:
I am not sure if the Mailscanner DB came into play with that though. Maybe it does. BTW, what log are you seeing that memcache error?

On 2013-02-18 14:01, Raymond Norton wrote:
There was some discussion about that. Andrew recommends a separate
database for a cluster set up, but my setup should work. Just not
finding the info I need to resolve the issues.




On 02/18/2013 01:53 PM, Mark Chaney wrote:
Right, but if A is down, then B's mailscanner wont work at all.

On 2013-02-18 13:48, Raymond Norton wrote:
Scanner A postgres is listening for remote connections (Same
credentials for both servers). I can successfully login via psql, so I
don't think this is the issue.




On 02/18/2013 01:39 PM, Mark Chaney wrote:
Im not sure what kind of failback that mailscanner has, but couldnt it potentially fail to even function if the remote postgresql server isnt available?

On 2013-02-15 14:13, Raymond Norton wrote:
Going by the clustering info in the docs. I have added node B to my main scanner "A". Node "A" is set as my database and memcached server.


 On node "A" I set memcached.conf to listen on all interfaces (-l
0.0.0.0). I can telnet to port 11211 from node B to A

On both nodes I set all memcached lines in production.ini to 10.10.1.41:11211

 Node B I also set MailScanner.conf to DB DSN =
DBI:Pg:database=baruwa;host=10.10.1.41;port=5432 (Node A)

 On Node B I also set the following in production.ini:
sqlalchemy.url = postgresql://baruwa:[email protected]:5432/baruwa

 I stopped memcache on node B for testing.

 There may be changes I still need to make, but at the moment I am
getting the following error when I check stats for node "B" from node
"A", attempt to run reports, etc...

 :

 UNKNOWNREADFAILURE: ERROR 7 FROM
MEMCACHED_GET(MQ-ROOT-NONE-2_COUNT(MAILQ.ID)_2): UNKNOWN READ FAILURE
 CGI Variables

-- Raymond Norton
LCTN
952.955.7766

_______________________________________________
Keep Baruwa FREE - http://pledgie.com/campaigns/12056

_______________________________________________
Keep Baruwa FREE - http://pledgie.com/campaigns/12056

_______________________________________________
Keep Baruwa FREE - http://pledgie.com/campaigns/12056

_______________________________________________
Keep Baruwa FREE - http://pledgie.com/campaigns/12056

_______________________________________________
Keep Baruwa FREE - http://pledgie.com/campaigns/12056

_______________________________________________
Keep Baruwa FREE - http://pledgie.com/campaigns/12056

_______________________________________________
Keep Baruwa FREE - http://pledgie.com/campaigns/12056

_______________________________________________
Keep Baruwa FREE - http://pledgie.com/campaigns/12056

_______________________________________________
Keep Baruwa FREE - http://pledgie.com/campaigns/12056

Reply via email to