Re: [OPEN-ILS-DEV] Syrup, OpenSRF 3.0, Evergreen 3.0.12 and JSONDecodeError

2018-10-08 Thread Jason Stephenson
OK. You are all probably sick of these emails by now, but lucky for you
this is the last one.

I fixed the problem.  Apparently, our Syrup server expects to have
OpenSRF services running locally that can talk to the production db
server.  However, them not running was not exactly my problem.

I first tried stopping the service and got different errors, so I
restarted them and the earlier reported error came back.

I tried my srfsh call from the Syrup server for a change, and got a
message that the private router was not connected to the network.
However, osrf_control --diagnostic said that it most certainly was running.

So, I look at /etc/hossts and find conflicting IP address for the
private domain.  I removed one set of public and private IPs for the
router and that resolved it.

Strange, but true.


Re: [OPEN-ILS-DEV] Syrup, OpenSRF 3.0, Evergreen 3.0.12 and JSONDecodeError

2018-10-08 Thread Jason Stephenson
OK. I am stumped.

After fixing my request to:

request open-ils.search
open-ils.search.biblio.copy_counts.location.summary.retrieve 4211388, 160, 0

I see no difference in the output between a system with a copy of
production data still running on our pre-upgrade version of Evergreen
and the post-upgrade version of Evergreen

Post-upgrade:

Received Data: [
  [
"160",
"",
"AHS 111 Life Sprt",
"",
"Reserve",
{
  "0":1
}
  ]
]


Pre-upgrade:

Received Data: [
  [
"160",
"",
"AHS 111 Life Sprt",
"",
"Reserve",
{
  "0":1
}
  ]
]

I cannot update packages on the Syrup server because it is running an
end-of-life release of Debian.  (I have not been able to get Syrup
running on a more recent distro, and I have tried.)

So, guess I'm stuck unless someone else notices something that I don't.

Jason


Re: [OPEN-ILS-DEV] Syrup, OpenSRF 3.0, Evergreen 3.0.12 and JSONDecodeError

2018-10-08 Thread Jason Stephenson
Yeah, never mind. I see what I did wrong below.

On 10/08/2018 08:14 AM, Jason Stephenson wrote:
> I have more information.  When I try the back end call used by Syrup to
> fetch copy counts with a record from the course that blows up, I get the
> following:
> 
> srfsh# request open-ils.storage
> open-ils.storage.biblio.record_entry.status_copy_location_count.atomic
> [4211388, 160, 0]
> 
> Received Exception:
> Name: osrfMethodException
> Status:  *** Call to
> [open-ils.storage.biblio.record_entry.status_copy_location_count.atomic]
> failed for session [1539000573.516499.153900057325003], thread trace [1]:
> DBD::Pg::st execute failed: ERROR:  invalid input syntax for integer:
> "ARRAY(0xebc67e0)"
> LINE 16:   WHERE cn.record = 'ARRAY(0xebc67e0)'
>  ^ [for Statement "
> SELECT  cp.circ_lib,
> CASE WHEN cnp.id > -1 THEN cnp.label ELSE '' END,
> cn.label,
> CASE WHEN cns.id > -1 THEN cns.label ELSE '' END,
> oils_i18n_xlate('asset.copy_location', 'acpl', 'name',
> 'id', cl.id::TEXT, ?),
> cp.status,
> count(cp.id)
>   FROM  asset.copy cp,
> asset.call_number cn,
> asset.call_number_suffix cns,
> asset.call_number_prefix cnp,
> asset.copy_location cl,
> config.copy_status cs,
> actor.org_unit_descendants(?,?) d
>   WHERE cn.record = ?
> AND cnp.id = cn.prefix
> AND cns.id = cn.suffix
> AND cp.call_number = cn.id
> AND cp.location = cl.id
> AND cp.circ_lib = d.id
> AND cp.status = cs.id
> AND cl.opac_visible IS TRUE
> AND cp.opac_visible IS TRUE
> AND cp.deleted IS FALSE
> AND cl.deleted IS FALSE
> AND cs.opac_visible IS TRUE
>   GROUP BY 1,2,3,4,5,6;
> " with ParamValues: 1='en-US', 2='1', 3='0', 4='ARRAY(0xebc67e0)'] at
> /usr/share/perl5/DBIx/ContextualFetch.pm line 52.
> 
> 
> Status: 500
> 
> Request Completed Successfully
> Request Time in seconds: 0.215329
> 
> 
> So, a database error is definitely not JSON.
> 
> Looks like this one could be headed for Launchpad.
> 


Re: [OPEN-ILS-DEV] Syrup, OpenSRF 3.0, Evergreen 3.0.12 and JSONDecodeError

2018-10-08 Thread Jason Stephenson
I have more information.  When I try the back end call used by Syrup to
fetch copy counts with a record from the course that blows up, I get the
following:

srfsh# request open-ils.storage
open-ils.storage.biblio.record_entry.status_copy_location_count.atomic
[4211388, 160, 0]

Received Exception:
Name: osrfMethodException
Status:  *** Call to
[open-ils.storage.biblio.record_entry.status_copy_location_count.atomic]
failed for session [1539000573.516499.153900057325003], thread trace [1]:
DBD::Pg::st execute failed: ERROR:  invalid input syntax for integer:
"ARRAY(0xebc67e0)"
LINE 16:   WHERE cn.record = 'ARRAY(0xebc67e0)'
 ^ [for Statement "
SELECT  cp.circ_lib,
CASE WHEN cnp.id > -1 THEN cnp.label ELSE '' END,
cn.label,
CASE WHEN cns.id > -1 THEN cns.label ELSE '' END,
oils_i18n_xlate('asset.copy_location', 'acpl', 'name',
'id', cl.id::TEXT, ?),
cp.status,
count(cp.id)
  FROM  asset.copy cp,
asset.call_number cn,
asset.call_number_suffix cns,
asset.call_number_prefix cnp,
asset.copy_location cl,
config.copy_status cs,
actor.org_unit_descendants(?,?) d
  WHERE cn.record = ?
AND cnp.id = cn.prefix
AND cns.id = cn.suffix
AND cp.call_number = cn.id
AND cp.location = cl.id
AND cp.circ_lib = d.id
AND cp.status = cs.id
AND cl.opac_visible IS TRUE
AND cp.opac_visible IS TRUE
AND cp.deleted IS FALSE
AND cl.deleted IS FALSE
AND cs.opac_visible IS TRUE
  GROUP BY 1,2,3,4,5,6;
" with ParamValues: 1='en-US', 2='1', 3='0', 4='ARRAY(0xebc67e0)'] at
/usr/share/perl5/DBIx/ContextualFetch.pm line 52.


Status: 500

Request Completed Successfully
Request Time in seconds: 0.215329


So, a database error is definitely not JSON.

Looks like this one could be headed for Launchpad.


[OPEN-ILS-DEV] Syrup, OpenSRF 3.0, Evergreen 3.0.12 and JSONDecodeError

2018-10-08 Thread Jason Stephenson
Hi,

We upgraded to Evergreen 3.0.12 and the latest OpenSRF rel_3_0 last
night.  Since doing the upgrade any time we try to view an item in
Syrup, we're getting a JSONDecodeError like the one below:

Environment:


Request Method: GET
Request URL: http://rb.cwmars.org/bcc/site/507/

Django Version: 1.4
Python Version: 2.6.6
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.messages',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.admin',
 'south',
 'conifer.syrup']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'conifer.plumbing.genshi_support.GenshiMiddleware',
 'django.middleware.locale.LocaleMiddleware',
 'babeldjango.middleware.LocaleMiddleware',
 'django.middleware.transaction.TransactionMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')


Traceback:
File
"/usr/local/lib/python2.6/dist-packages/Django-1.4-py2.6.egg/django/core/handlers/base.py"
in get_response
  111. response = callback(request,
*callback_args, **callback_kwargs)
File "/home/syrup/bcc/Syrup/conifer/syrup/views/_common.py" in hdlr
  85. return handler(request, site_id, *args, **kwargs)
File "/home/syrup/bcc/Syrup/conifer/syrup/views/sites.py" in site_detail
  229. return g.render('site_detail.xhtml', site=site)
File "/home/syrup/bcc/Syrup/conifer/plumbing/genshi_support.py" in render
  77. return
HttpResponse(self.template(tname).generate(**kwargs).render('xhtml'))
File
"/usr/local/lib/python2.6/dist-packages/Genshi-0.7-py2.6-linux-i686.egg/genshi/core.py"
in render
  184. return encode(generator, method=method,
encoding=encoding, out=out)
File
"/usr/local/lib/python2.6/dist-packages/Genshi-0.7-py2.6-linux-i686.egg/genshi/output.py"
in encode
  57. return _encode(''.join(list(iterator)))
File
"/usr/local/lib/python2.6/dist-packages/Genshi-0.7-py2.6-linux-i686.egg/genshi/output.py"
in __call__
  350. for kind, data, pos in stream:
File
"/usr/local/lib/python2.6/dist-packages/Genshi-0.7-py2.6-linux-i686.egg/genshi/output.py"
in __call__
  669. for kind, data, pos in stream:
File
"/usr/local/lib/python2.6/dist-packages/Genshi-0.7-py2.6-linux-i686.egg/genshi/output.py"
in __call__
  774. for kind, data, pos in chain(stream, [(None, None, None)]):
File
"/usr/local/lib/python2.6/dist-packages/Genshi-0.7-py2.6-linux-i686.egg/genshi/output.py"
in __call__
  594. for ev in stream:
File
"/usr/local/lib/python2.6/dist-packages/Genshi-0.7-py2.6-linux-i686.egg/genshi/core.py"
in _ensure
  289. for event in stream:
File
"/usr/local/lib/python2.6/dist-packages/Genshi-0.7-py2.6-linux-i686.egg/genshi/template/base.py"
in _include
  618. for event in stream:
File
"/usr/local/lib/python2.6/dist-packages/Genshi-0.7-py2.6-linux-i686.egg/genshi/template/markup.py"
in _match
  362. content = list(content)
File
"/usr/local/lib/python2.6/dist-packages/Genshi-0.7-py2.6-linux-i686.egg/genshi/template/base.py"
in _include
  618. for event in stream:
File
"/usr/local/lib/python2.6/dist-packages/Genshi-0.7-py2.6-linux-i686.egg/genshi/template/markup.py"
in _strip
  315. event = next()
File
"/usr/local/lib/python2.6/dist-packages/Genshi-0.7-py2.6-linux-i686.egg/genshi/template/base.py"
in _flatten
  602. _exec_suite(data, ctxt, vars)
File
"/usr/local/lib/python2.6/dist-packages/Genshi-0.7-py2.6-linux-i686.egg/genshi/template/base.py"
in _exec_suite
  306. suite.execute(ctxt)
File "/home/syrup/bcc/Syrup/conifer/templates/components/site.xhtml" in

  38.   downloads_allowed = site.allows_downloads_to(user)
File "/home/syrup/bcc/Syrup/conifer/plumbing/hooksystem.py" in callhook
  24. return f(*args, **kwargs)
File "/home/syrup/bcc/Syrup/conifer/integration/evergreen_site.py" in
item_status
  163. return self._item_status(item.bib_id)
File "/home/syrup/bcc/Syrup/conifer/plumbing/memoization.py" in func
  35. v = self.cache[key] = f(*args,**kwargs),time.time()
File "/home/syrup/bcc/Syrup/conifer/integration/evergreen_site.py" in
_item_status
  324. counts = E1(OPENSRF_COPY_COUNTS, bib_id,
EVERGREEN_STATUS_ORG, EVERGREEN_STATUS_DEPTH)
File "/home/syrup/bcc/Syrup/conifer/libsystems/evergreen/support.py" in
evergreen_request_single_result
  69. resp = evergreen_request(method, *args, **kwargs)
File "/home/syrup/bcc/Syrup/conifer/libsystems/evergreen/support.py" in
evergreen_request
  61. resp = json.load(req)
File "/usr/lib/pymodules/python2.6/simplejson/__init__.py" in load
  328. use_decimal=use_decimal, **kw)
File "/usr/lib/pymodules/python2.6/simplejson/__init__.py" in loads
  384. return _default_decoder.decode(s)
File "/usr/lib/pymodules/python2.6/simplejson/decoder.py" in decode
  402. obj, end