Open Source Integrated Library System

Evergreen on IRC

#evergreen Logs for Wednesday, August 11th, 2010

< Tuesday, August 10th, 2010Raw Log FileThursday, August 12th, 2010 >
#TimeNickMessage
#00:50:36jamesrf has joined #evergreen
#01:40:30dbs has quit IRC
#02:08:51atz_ has joined #evergreen
#02:11:16atz has quit IRC
#02:25:28atz__ has joined #evergreen
#02:27:22atz_ has quit IRC
#07:08:42Dyrcona has joined #evergreen
#07:13:33rsinger has joined #evergreen
#07:35:55alxp has joined #evergreen
#07:36:36shopkins has joined #evergreen
#08:10:06mck9 has left #evergreen
#08:10:16mck9 has joined #evergreen
#08:11:16atheos_dc has joined #evergreen
#08:14:09shopkins has quit IRC
#08:16:07atheos_dcI'm interesting in making a change in our build of Evergreen, so that ALL new users are created with actor.usr_setting.opac.hold_notify='email' Basically, looking to change the default "opt-in phone & email" notifications for new users. Can someone point me into the right direction
#08:17:11jeffsomething i've thought on. should be able to just change the default in the opac js.
#08:17:25jeffsuch that users with no preference will get 'email only'
#08:17:35atheos_dccorrect
#08:17:49jeffthen, no need to auto-populate a user setting on actor creation
#08:21:51atheos_dcjeff , if opac.hold_notify is not defined, phone notification is set to true in action.hold_request - making a user default to email and phone notifications if they've never adjusted their opac settings
#08:24:47jefftweak 'selected' in skin/default/xml/myopac/myopac_prefs.xml -- the logic in myOPACShowHoldNotify in skin/default/js/myopac.js and some tweaks to __holdsDrawWindow in skin/default/js/holds.js at minimum
#08:26:50atheos_dcok jeff, I'll look those over - Thanks for your input
#08:27:25cerpy has joined #evergreen
#08:39:51atheos_dc has quit IRC
#09:02:26Meliss has joined #evergreen
#09:17:36jenny has joined #evergreen
#09:28:16miker_grabbing 0369
#09:29:06bshum has joined #evergreen
#09:29:09bshum has joined #evergreen
#09:32:08yboston has joined #evergreen
#09:36:06shopkins has joined #evergreen
#10:13:46shopkins has quit IRC
#10:19:43atheos_ has left #evergreen
#10:20:44shopkins has joined #evergreen
#10:36:26afterl has joined #evergreen
#10:37:29youdonotexist has joined #evergreen
#10:37:54moodaepojeff: Talking about the same old "email" as default notification, after looking through it for sometime I rationalized that if there is an email address for a patron they get notified anyway. So if the staff notice there's an email address in the hold receipt that pops-up they can ignore calling the patron. The overdues are set to run with patrons with email address get electronic notification and ones without print. Result: Leave it at phone/emai
#10:40:38tsberemoodaepo: What if someone sets up an auto-caller?
#10:42:18moodaepotsbere: Right in that case it'd be better to default to email IF the patron has an email address or adds one on file. But for that we'd need a script running and checking the db.
#10:49:53atz__moodaepo: or just an action/trigger filter right?
#10:53:51jeffmoodaepo: our hold notification phone calls are automated, so we'll be working on the patch that allows us to set a different default if the patron doesn't have one explicitly set.
#10:55:11jeffmoodaepo: at time of hold request, if the patron has an email address we will default to email only. if the patron has no email but has a phone, we will default to phone only. if there are neither, the patron will only be notified if they list a phone number on that specific hold.
#10:55:50jeffmoodaepo: and of course all of this is just default with no patron preference saved. if the patron has specified a preference, we use that, and of course patron or staff can override all of this before clicking Place Hold
#10:57:32jeffjavascript pref for now, because i'd rather not delve into making it an OU setting (then do you set based on pickup lib or home lib, etc ;)
#10:57:44jeffbut i can see it being an ou setting later
#11:07:14agJohn has joined #evergreen
#11:09:13Dmagick has quit IRC
#11:09:13agJohnDo any of you folks' libraries circulate uncataloged, donated paperbacks or similar types of items that you want to track CKO counts for, but do not barcode and do not want to charge fines for? If so, would you share how you have them set up?
#11:09:15leed has quit IRC
#11:10:09phasefx has quit IRC
#11:10:23agJohnI can't figure out any way to associate circ rules w/ uncataloged copies--did I just miss it?
#11:10:39gdunbar has quit IRC
#11:11:09bshumagJohn: I would imagine that noncat items follow the default circ rule.
#11:11:16bshumOr the most generic one in your setup.
#11:11:16moodaepo is back at the desk
#11:11:22bshumSince they wouldn't have any circ modifiers to control behavior.
#11:11:28bshum(I think)
#11:11:35atz__ is now known as atz
#11:11:39Callender has quit IRC
#11:11:59bshumWe usually include a rule with no circ mod defined, to be a "catch all"
#11:12:51atzpresumably among the more restrictive rules
#11:12:54cerpy has quit IRC
#11:13:17phasefx_if using an actual "non-cat" checkout, the only rule is the loan period associated with the non-cat
#11:13:36phasefx_doesn't use circ scripts or in-db circ
#11:14:08agJohnGood suggestions. Thanks much.
#11:14:10phasefx_when the due date hits, a non-cat circ will "fade away" from the patron's account
#11:15:23agJohnHmmm. Gotta go check settings; not the behavior the librarians are reporting....
#11:15:52phasefx_if they're using barcodes at all (even fake barcodes taped to a monitor), they're not using non-cats
#11:17:19agJohnRight; they claim they're doing Non-cat CKO's....
#11:21:47moodaepojeff++ # For the explaining your desired setup.
#11:23:17phasefx_agJohn: so you should look in the non-cat editor
#11:23:39phasefx_non-cat's can be specific to libs too, or shared
#11:23:57moodaepoatz: Yea action triggers would do well. I keep forgetting they exist since I haven't created one, do you know of any tutorial available or do I need to just dig in to an existing one?
#11:24:34atzno good reference that I can recall
#11:27:41phasefx_moodaepo: you can gleam some stuff about A/T by looking at the db upgrade scripts that add A/T templates. They usually touch all the tables needed
#11:28:15dbs has joined #evergreen
#11:28:40moodaepoWill do. I think dbs had mentioned he might do a blog post when he had time
#11:29:43moodaepo or became part of the Q continuum
#11:29:43dbsspeaking of the devil...
#11:30:14moodaepohe appears
#11:33:33dbs reads through backscroll - ah, action/trigger
#11:34:35phasefx_moodaepo: also see http://markmail.org/message/n6ktuc2xevparakn
#11:35:01phasefx_need to wiki that
#11:36:58moodaepoThis might not be news to people but we just figured out it is quite important to set hours of operation. We didn't have hours set on the system level. Well librarians at HQ were trying to checkout items and it didn't work yesterday. But it works today. Turns out yesterday's checkouts would be due on Labour Day which we have set as a holiday. Well it then tries to find the next available open day but since at this level we hadn't set open hours it
#11:37:33dbsdamn you phasefx, I was just tracking that down :)
#11:38:47dbssee also this thread: http://markmail.org/thread/rs2ntcum3krbmrga (perhaps useful for going through the puzzling-out process from the bottom up rather than the top-down from the GUI perspective)
#11:53:51phasefx has joined #evergreen
#12:01:56leed has joined #evergreen
#12:06:01_jschuyle_ has joined #evergreen
#12:09:36Dmagick_ has joined #evergreen
#12:12:27gdunbar has joined #evergreen
#12:13:00Callender has joined #evergreen
#12:31:43jamesrf has quit IRC
#12:33:10dbs has quit IRC
#12:34:12branflakes has joined #evergreen
#12:48:42dbs has joined #evergreen
#13:06:21mrpeters-isl_ has joined #evergreen
#13:51:25tsberephasefx, dbs, or anyone else who wants to chime in, would you guys prefer an initial launchpad entry that "describes" my patch with notes and patch attached after that, or is dumping my notes into the initial description and attaching the patch file ok?
#13:53:36gmcharlttsbere: I don't think it makes much of a difference, although having the initial description be a concise description of the change and adding the detailed notes as comments might be modestly easier for others to parse
#13:55:58miker_tsbere: you may be looking for "blueprints" on launchpad?
#13:56:19tsbereCan blueprints have patches attached?
#13:58:25tsbere thinks that launchpad doesn't really have anything good category-wise for this patch to begin with, but was told he should submit it there and link to the launchpad entry in an email
#14:00:21jenny1 has joined #evergreen
#14:02:01dbsLaunchPad blueprints are just highlevel descriptions of a work item that then link to the detailed stuff
#14:02:07phasefxtsbere: or at least, that's an idea. Whatever is low barrier for you :)
#14:02:54jenny has quit IRC
#14:03:06dbsa launchpad bug that contains the description + patch would be plenty; an email linking to it would be a bonus. but yeah, just getting it to the project in any way is awesome
#14:04:09phasefxIRC is a bit ephemeral, though you have my attention; I just need to set aside time to play with it
#14:04:12jenny1 has left #evergreen
#14:04:46phasefxemail might reach others who are also interested
#14:07:25tsbereI didn't want to post it, via email or launchpad, until I had the "Check for Updates" button/menu/whatever in place. Didn't seem "complete" for me until then.
#14:07:39tsbereSince I did that yesterday, time to post it outside of IRC
#14:12:23phasefxtsbere++ # not that you fall into this group, but there are folks out there in libraryland who don't share code because it doesn't feel "good enough" or "generalized enough", and we want to do what we can to make it easy
#14:14:19tsberephasefx: Sometimes, they are right. I have seen, and replaced, some very annoying code written in libraryland.
#14:14:57phasefxeasier for code to stagnate when it's unobserved
#14:15:24tsbereOh, no, in this case the code *was* being shared.
#14:15:36phasefxI hope you get the itch to clean up all my annoying code :D
#14:16:23gmcharlttsbere: also, for a project that takes more than a few days, putting up a wishlist bug and stating that you're working on a patch for it lets you give people a heads up, identify possible sources of help, and increase our changes of avoiding duplicate effort
#14:16:52gmcharlti.e., IMO it's perfectly fine to use launchpad to signal work in progress
#14:17:35gmcharltnot that talking on #evergreen, as you did, wasn't also a Good Thing
#14:17:48tsbereTrue. But I forgot about launchpad and didn't see it mentioned on the website as a reminder until I was almost done. Anyone added it to the website yet? ;)
#14:19:32phasefx is game, just wants to see some "aye aye"'s that it's a good idea, and maybe past the "let's experiment with launchpad" stage
#14:20:13phasefxit's certainly getting some use as a bug tracker
#14:20:27miker_phasefx: aye aye
#14:21:03phasefxalright, I'll set aside some time to tweak the contributing doc and website, if dbs or someone doesn't beat me to it :)
#14:21:46phasefxshould still make it optional for folks wanting to share patches, for low barrier
#14:22:38dbssure
#14:22:53phasefxwhat is using Safe in Evergreen? I had trouble upgrading it with cpan
#14:23:14miker_phasefx: action trigger IIRC
#14:23:59phasefxah, I remember seeing that now
#14:27:08tsbere has finished adding to launchpad and sending a message to the dev list
#14:35:15tsbereI don't think I can change it from undecided to wishlist, though
#14:35:52atzphasefx: yeah, otherwise, system access was totally exposed via template
#14:39:49phasefxhey, what's wrong with a little print `rm -rf /`; ?
#14:40:07phasefx#don't run that at home folks
#14:40:50gmcharltphasefx: so I should run it at work, instead?
#14:41:31tsberegmcharlt: No, you should run it at someone else's home, or someone else's work ;) #not really
#14:44:28phasefxgmcharlt: yeah, they're insured
#14:45:11phasefxhrm, though if you're using ssh to/from work, where would you be running it?
#14:45:43jamesrf has joined #evergreen
#14:47:38moodaepophasefx: heh I thought you run that before a backup test, no?
#14:49:03phasefxmoodaepo: I think you're right. We should add it to the Magic Spells page
#14:49:22gmcharltphasefx++
#14:49:42moodaepogmcharlt: How was the vacation?
#14:49:52gmcharltshort
#14:50:55moodaepoAh as always
#15:04:36alxp has quit IRC
#15:06:57bshum has quit IRC
#15:30:24Dyrcona has left #evergreen
#15:31:20atzis there something wrong with tabs where inactivity is counted *per tab*? i have situations where i re-login with one tab, and then click reload on a 2nd and it prompts me immediately for a login again
#15:31:27atzsame w/ a 3rd, etc.
#15:36:07phasefxin the staff client? curious, are you re-logging in via the oils proxy dialog embedded in the page, or by a xul pop-up dialog?
#15:36:43atzboth... usually the xul
#15:38:15phasefxif you get an oils proxy login, I could see the rest of the client being blithely unaware of any new cookie that sets, and even overriding it later
#15:39:28moodaepoWhat action trigger hooks are available by default? I see the list but is it just cosmetic or can they all be enabled?
#15:40:19phasefxatz: but I thought dojo interaces at least are supposed to look fo xulG.get_new_session and use that when needed if it exists
#15:44:26phasefxmoodaepo: main thing I think is whether the code is actually firing events for those hooks (grep for the hook name to find examples of such). For example, in Money.pm, return $U->fire_object_event(undef, 'money.format.payment_receipt.print', $payments, $$payments[0]->xact->usr->home_ou); so there is a hook that templates can latch onto called money.format.payment_receipt.print
#15:44:32shopkins has quit IRC
#15:44:57phasefxI forget the difference between active/passive here
#15:45:51phasefxit's not an enabled/disabled thing, though
#15:46:40moodaepophasefx: Yup that was the plan if we didn't have a list somewhere and in /openils/conf/action_trigger_filters.json I just see an entry for checkout.due
#15:48:08mrpeters-isl_ has quit IRC
#15:48:45phasefxand I forgot all about that file. For firing passive events?
#15:48:46dbsmoodaepo: there were two uses for "active" in the 1.6.0 interface, one of which meant "enabled" - in recent 1.6.0 versions that label has actually been changed to "enabled". can't remember where
#15:48:46moodaepoYea in the discussion you pointed to earlier it was clarified on IRC and dbs changed it in the staff client
#15:48:56dbsheh
#15:49:25moodaepodbs++
#15:51:16moodaepophasefx: > http://markmail.org/thread/lpdu77rrqmjq5sgu#query:+page:1+mid:rs2ntcum3krbmrga+state:results (first para active/passive)
#15:51:51moodaepoAs for that file, I'd also be interested to know when we need to use it/how
#15:55:03moodaepoWell actually there berickson corrects dbs about "Active" but dbs's explanation applies to active/passive in the "hooks" tab. I think.
#15:55:15phasefxanyone familiar with a dojo is not defined during workstation registration? my first console error is aout is not defined in OrgTree.js
#15:55:38collum has joined #evergreen
#15:55:44dbsautogen.sh?
#15:55:48moodaepoatz: I can confirm your issues with tab specific inactivity
#15:55:54phasefxno errors with autogen.sh that I can see
#15:56:16dbsdojo is installed?
#15:56:27dbs goes for the dumb things he usually stumbles over
#15:56:49phasefxI can retrieve dojo.js from apache
#15:56:59senatordbwells (or anyone else who may know): is there a limited set of possible values for 85{3,4,5} $i-$m (chronology captions)? all examples i can find only use year, season, month, week or day with or without parentheses, but is that the complete set of possibilities or no?
#15:58:20phasefxthough I don't see it actually trying to retrieve dojo.js in the apache logs during that sequence
#15:59:06dbssenator: http://www.loc.gov/marc/holdings/hd853855.html also has an example with hour
#15:59:18gmcharltsenator: no, I don't think it's constrained that that list. that said, as long as you handle the chron types you've identified (+ hour) and fail gracefully if something else gets put in, that's good enough
#15:59:20senatordbs: thanks. i actually was just eyeballing that.
#15:59:21tsberephasefx: Did you check to see if Orgtree.js is corrupt?
#15:59:22Meliss has quit IRC
#15:59:44phasefxtsbere: looks sane, and I'm using a stock org tree
#15:59:47senatorgmcharlt: all right, thanks
#15:59:57dbsinclude "equinox" in there, just becaue
#16:00:26senatorIOW, one needn't be prepared for total anarchy in those subfields, but only reasonable units of time
#16:00:42gmcharltdbs++ # that chronology setting, when used, will pop up a message saying "Just right a ERMS, already"
#16:00:45dbsI could imagine a farmer's almanac, vernal equinox
#16:00:47senatorhaha @ dbs
#16:00:50gmcharlts/right/write/
#16:00:57dbsheh
#16:04:46tsberephasefx: How about data.js? That being requested/look sane? (server/OpenILS/data.js)
#16:06:24phasefxnot requested at that point in time, though it should be after workstation registration on subsequent logins
#16:08:48dbwellssenator: I concur with what others have said, thanks
#16:09:10tsbereNear as I can tell, aout is defined in data.js, unless I missed it somewhere else in the javascript (not that I fully understand that part yet, though, and I am barely looking while working on two other things)
#16:11:00phasefxit should be loaded after dojo.js, but it's not. aout would get defined by dojo.require('fieldmapper.AutoIDL'); in this case
#16:11:07atzmoodaepo, do tabs not share cookies?
#16:13:22phasefxatz: the staff client keeps track of the auth token as a global variable, though it also sets a cookie for those embedded interfaces that expect one. if those interfaces change that cookie on their own, the client doesn't know, and it'll keep shoving a stale cookie on every page change
#16:14:07phasefxwe could get the client to just use the cookie as the definitive value of the authtoken
#16:14:19senatordbwells: no, thank you
#16:14:23phasefxand by global, I mean cross-window global
#16:14:59phasefxwell, that's still misleading. Forget global variable, but think singleton object that every window could access if it tried
#16:19:07atzis that considered faster or more reliable than the cookie?
#16:20:35tsbereIs there any support for saying "If I am in the xul app, ask the xul app to renew my auth, otherwise do the current method"? Because having anything other than the xul app ask for auth seems like over complicating matters when in it.
#16:21:17phasefxit's a horrible kludge that preceded the invention of stuff like window.localStorage, and cookies weren't on my radar (this was before JSON as a way to serialize data)
#16:22:08dbstsbere: isXUL() mostly works
#16:22:52phasefxtsbere: we don't check for a valid auth before hand, but any method that tries to use an invalid authtoken will return a NO_SESSION event. At that point, we go through the process of getting a new auth, and then retry the method. The xul part of the client exposes a method that content can use in this case to re-auth
#16:23:28phasefxbut if atz is seeing the oils proxy login prompt (which can work outside of the staff client), then that method isn't being invoked
#16:25:39tsbereI thought that was how it was supposed to work, but I wasn't 100% sure what I saw where. Too much "autoupdate" focused code hunting the past week or so, combined with not fully caring about things that were working fine for me.
#16:26:40phasefx doesn't know how oils proxy gets triggered, just that it's implemented with an apache module
#16:27:57jeffyou request a page protected by it, and per apache directives the ses cookie is checked to ensure that it is valid and has a certain permission.
#16:28:13phasefxwhat's probably happening is that if any page load happens before the dojo can tell the client, hey give me a new auth token, then the proxy steps in first and breaks thing
#16:29:36jeffoils_proxy returns 200 OK on the login page. it probably shouldn't.
#16:29:48phasefxcould teach oils proxy to look for xulG.get_new_session
#16:30:05jeffi don't think there's anything in the staff client that currently looks for not-200\OK, but it could.
#16:32:02phasefxor could get the ses() method that all the xul interfaces use to look for a cookie instead of grabbing things out of the xpcom that OpenILS.data uses
#16:32:49phasefxwe'd have inconsistent interfaces for re-authing, but either would then work, and hey, the client is a frankenstein as it is anyway :)
#16:33:45phasefxbe fun to see interactions with operator change, expired sessions, and oils proxy though
#16:37:12phasefxokay, r: dojo not found. I had switched environments, and in this new one, I was using dojo-release-1.3.3-src instead of simply dojo-release-1.3.3
#16:38:03phasefxso, -src doesn't work (at least without some sort of build process)
#16:38:42tsbereAhh
#16:38:45tsbereI made that mistake once
#16:39:05phasefxfun fun
#16:42:05tsbereI think in src version you need to run build.sh in util/buildscripts
#16:43:21tsberenot worth the effort, I think, I just made note to always use the release version. >_>
#16:45:00dbsphasefx: pulling password from a cookie? that sounds some alarm bells
#16:45:16atzdbs: no just the session key
#16:45:49dbsatz: have you read the patch? var password = cgi.param('password') || dojo.cookie('password'); // looks an awful lot like a password to me
#16:46:38atzoh, i thought you were replying to our talking about xul vs. cookie auth
#16:46:40phasefxdbs: what patch is this?
#16:47:14dbsr17176 - berick just committed it
#16:48:03dbspart of Open-ILS/web/js/ui/base.js
#16:48:31bericknote the commit msg
#16:48:48dbsnoting, but I reserve the right to fret
#16:48:59berickof course
#16:49:13atzwhat external forces are putting our (valid) logins in cookies?
#16:50:34berickimagine automating the setup of many self-check worksations, too many for humans to go to each and manage
#16:51:33atzfair enough
#16:51:43berickand imagine a tool to push cookie data (or any data) out to all of these workstations automatically
#16:51:54berickFWIW, I'm all ears for alternate approaches
#16:52:16atzwould be nice to be all cert-based, but you can basically count on failed maintenance of certs
#16:52:16jeffuse trunk's "long term session" support instead, with a longer-than-session cookie?
#16:52:50berickjeff: the problem is getting the session cookie in the first place
#16:52:56pmplett has joined #evergreen
#16:53:15berickand the secondary problem is what happens when memcache goes down and every PC has to be re-logged in
#16:53:23jeff nods
#16:53:26bericks/session cookie/authtoken/
#16:53:30bericksame thing
#16:53:33bericki guess ;)
#16:54:25berick i agree this is less than ideal and my hope is that no one uses it and that those that do are well aware of the risks (and use SSL and lock down all cookie access)
#16:54:40phasefxevery machine/browser gets a unique UUID cookie on first connect, and UI somewhere vets (with data collected such as IP address, operating system, etc.), and associates each UUID with credentials, workstation names, settings, etc.
#16:54:51jeffi agree that it is less than ideal, but don't have an alternative that doesn't require additional infrastructure. musing on it a bit.
#16:55:06jeffinfrastructure similar to that, yeah.
#16:56:59jamesrf has quit IRC
#16:57:29berickphasefx: not totally following...
#16:58:30tsbereberick: I think the idea would be "machine connects, gets a UUID cookie that can be written to the prefs file, and then an admin vettes the machine as auto-auth based on the UUID, the IP, the workstation ID, etc for a given purpose database side"
#16:58:59jeffberick: admin interface giving "the following machines have tried to access the passwordless interface FOO. pick which ones you want to authorize and tell me what you want to authorize them to do" or similar.
#16:59:11jeffthen those uuids would get long term permission to do 'stuff'
#16:59:20phasefxright
#16:59:39moodaepoatz phasefx: Was away from the desk. Just to document how I tested the issue atz brought up and ya'll had huge long discussion about..I'm pasting the notes in paste lisp.
#16:59:42lisppastemoodaepo pasted "tab specific inactivity monitor in staff client" at http://paste.lisp.org/display/113421
#17:00:06jefflots of ways to do it server-side, and there are a few other options that perhaps don't require as much infrastructure
#17:01:06phasefxmoodaepo: muchos gracias. that's seems pretty borked, and unrelated to oils proxy
#17:01:10jeffmoodaepo: cool. that's about what i would expect, with the addition of the copy bucket fixme. :)
#17:02:08moodaepooh it's not oils proxy...well then it's a non-issue and I didn't understand what atz brought up aye (?) : )
#17:02:43jeffmoodaepo: what version of evergreen is this?
#17:02:51moodaepo goes to scroll back
#17:02:59moodaepojeff: 1.6.0.6
#17:03:19afterl has quit IRC
#17:04:02berick nods
#17:06:06phasefxmoodaepo: jeff: I'd expect for copy buckets to work in tab 2 after a new session was fetched in tab 1 :(
#17:06:28jeffyeah, that was the unexpected for me.
#17:06:29moodaepoOk so the oils proxy is the one used when we use the browser not the staff client
#17:06:54phasefxit's using ses(), which pulls from OpenILS.data, and the network code that does the juggling/dialog for new auth sets the data in the same location
#17:06:56moodaepophasefx: Let me try that again..
#17:08:02agJohnWhen attempt to use the SC's Admin | Server Administration options, I'm getting an error message. The Apache log say:
#17:08:04agJohnCan't locate object method "home_ou" via package "au" at /openils/lib/perl5/OpenILS/WWW/Proxy.pm line 124.\n
#17:08:05agJohnI'm logged in as admin (w/ a home_ou of 1--the consortium level). Huh?
#17:08:49agJohnNothing terribly exciting about the line in Proxy.pm:
#17:08:52agJohn $ws_ou ||= $user->home_ou;
#17:08:58collum has quit IRC
#17:14:18phasefxagJohn: my guess is that the open-ils.auth.session.retrieve method returned something other than a user object or a NO_SESSION event
#17:14:32jeffbut something that was still an object.
#17:15:06jeffwell...
#17:15:11jeffnevermind me.
#17:16:06agJohnphasefx: And that would suggest what to resolve it? (This is 1.6.0.6 and it happens with a fresh login and everything started cleanly/freshly....)
#17:16:11jeffsomething that passed ref($user) in verify_login, but i don't know if that means "was still an object" in perl-pedantry :)
#17:16:32phasefxI'd say put a use Data::Dumper; warn Dumper('agJohn user = ' . Dumper($user)); in there right before it blows up
#17:16:50jeffagJohn: check osrfsys.log around that time? in theory, a call to open-ils.auth.session.retrieve returned something unexpected
#17:17:16phasefxyou'll notice jeff is more of a detective, whereas I like blowing stuff up
#17:17:40phasefx <- kept away from production systems
#17:18:55agJohnRiiight....
#17:19:22agJohnosrfsys.log has lotta lines in there; searching for the needle....
#17:19:24phasefxexploratory surgery
#17:20:13tsbere does his detective work by way of blowing stuff up
#17:20:18tsbere is also a fan of Mythbusters
#17:20:55berickalmost sounds like fieldmapper (which sets the class hints -> package mapping) didn't load
#17:21:31berickif there's no hint map for "au" it will bless the parsed object into an "au" object, instead of a fieldmapper::actor::user object
#17:22:21berickhm, but if everything else is working, IDL/fieldmapper is probably fine
#17:23:09dbsberick: apologies for the double-take on the cookie password thing. the additional context helps
#17:24:12jeffagJohn: are you able to use other functions of the system, log in to the staff client, etc?
#17:24:28jeffagJohn: or are you trying to log in to the initial interfaces to configure a new install?
#17:24:41jeffagJohn: apologies, i think you already said you're getting there from the staff client to begin with.
#17:26:12dbsagJohn: are you shutting down the staff client completely, or just logging off / logging on?
#17:26:48berickdbs: double-take at will. it made me feel kinda dirty.
#17:26:50jeffagJohn: in osrfsys.log there should be a "Retrieving auth session" line
#17:27:00dbs$user is returned by verify_login($ses)
#17:27:10dbserr, s/ses/auth_ses/
#17:27:13agJohnOK. Parsing....
#17:27:57agJohnjeff: Yes, all other functions work--including local admin stuff--it's just the system admin stuff that is grumpy.
#17:28:08tsbere has quit IRC
#17:29:38moodaepoagJohn: Set the log level to 4 in opensrf_core to go looking for a real needle in the...that's how real cats debug.
#17:30:44agJohnLog level's set to debug level. And yes, there is a "Retrieving auth session" line:
#17:30:46agJohn open-ils.auth 2010-08-11 14:59:45 [DEBG:5269:oils_auth.c:563:] Retrieving auth session: 876c38f8a7916c986bcf79009cd769b8
#17:30:47agJohn Looks like a token to me....
#17:31:09dbsI was asking if you were shutting down the staff client because I was wondering if the session had timed out but the cookie was still in existence (until the browser/staff client is shut down)
#17:31:51phasefxcould take that token and try the method in srfsh: request open-ils.auth open-ils.auth.session.retrieve "token" and see what you get back
#17:32:20phasefx(assuming the token hasn't been destroyed by logging out of the client)
#17:33:00agJohndbs: I have not shut it down since originally opening it and trying the failed functions; I'll test the token and then see what happens (but since this has been an on-going problem, I don't expect quitting/restarting SC to help).
#17:34:00moodaepoagJohn: This seems to have cropped up before > http://www.mail-archive.com/open-ils-dev@list.georgialibraries.org/msg04685.html
#17:34:25moodaepoWhat version EG are you running?
#17:34:39jeffhe's on 1.6.0.6
#17:35:04agJohnphasefx: Gives me all kinds of goo. Can I use the IDL stuff to figure out which element in the JSON record is the home-ou? Maybe I'll check out moodaepo's reference... (it's 1.6.0.6--with two hand-applied patches)
#17:35:34moodaepoagJohn: No answer there just the same issue.
#17:35:35agJohnphasefx: That is, the token is clearly valid and gives me back a long JSON record.
#17:35:46agJohnAh...well, dang...
#17:35:55agJohnI like to have *new* issues....
#17:37:19agJohnBut, yes, that's it exactly.
#17:37:34jamesrf has joined #evergreen
#17:38:41jeffagJohn: in srfsh, does your received data begin with
#17:38:42jeffReceived Data: {
#17:38:42jeff "__c":"au",
#17:38:42jeff "__p":[
#17:38:44jeff?
#17:39:43agJohnIndeed it does; any point to pasting it to past.lisp.org?
#17:39:52agJohnpast > paste...
#17:40:31jeffnot much, but wouldn't hurt -- as long as you haven't populated private data in the admin user's fields.
#17:41:02dbsI like phasefx's approach of adding a Data::Dumper call or 5 into Proxy.pm at this point
#17:41:19lisppasteagJohn pasted "Authorized user goo" at http://paste.lisp.org/display/113422
#17:41:39agJohndbs: I'll do it....
#17:41:40jeffdbs: agreed.
#17:41:43jeffagJohn: do it!
#17:41:45jeff grins
#17:41:55dbsnow match up those fields with the fields defined in fm_IDL.xml for class id="au"
#17:43:09dbsbah, looks like home_ou is coming across as 1 (just after "First name" of "Administrator")
#17:43:25dbsall looks good there. off to the Dump!
#17:43:50dbs is off to home
#17:44:01dbs has quit IRC
#17:44:45yboston has quit IRC
#17:52:45jeffdavis has joined #evergreen
#17:53:52agJohnphasefx: Sorry for the dum[bp] question, but where is that Data::Dumper output going to appear--I'm not seeing it in the osrfsys.log. Maybe I messed something up, but at least it compiled....
#17:54:13jeffagJohn: check apache error.log
#17:54:19agJohnAh...
#17:54:37jeffdavishi, I just noticed that your password appears in cleartext in the console output when you login to the staff client, which seems undesirable.
#17:54:45phasefxagJohn: if it's an apache module, I'd expect apache log files. You could also output to a file. open FILE, ">/tmp/foo.txt"; print FOO Dumper(etc) . "\n"; close FILE;
#17:55:04jeffagJohn: also, you'll need to have restarted apache after adding that line to Proxy.pm
#17:55:05phasefxor better, >> /tmp/foo.txt
#17:55:50jeffjeffdavis: agreed, it's "less than optimal" -- patch to hide it when the staff client's "developer/debug" mode isn't enabled would probably be welcome.
#17:55:58agJohnjeffdavis--not a big deal; the whole install is hiding behind a firewall for now (and the client will set a different password later)
#17:56:02jeffjeffdavis: is it a problem because you're logging the console to disk, or?
#17:56:31jeffagJohn: i think jeffdavis was talking about a general concern of his, not the current troubleshooting process for your issue. :)
#17:56:32agJohnjeffdavis--never mind....
#17:56:35jeffheh
#17:56:43jeffdavisyeah sorry for the derail :)
#17:57:11jeffdavisjeff: not a specific problem, just seems like maybe not good practice.
#17:57:23jeffdavisIt's easy enough to patch, just wanted to make sure it wasn't a deliberate choice.
#17:57:28agJohnNP.
#17:57:30agJohnUm, is there really any point in trying to dump this data from Proxy.pm when the data is clearly there....
#17:57:36branflakes has quit IRC
#17:57:38phasefxI didn't think the actual password was exposed in cleartext. humbug
#17:58:19phasefxI must be overlooking it
#17:58:27agJohnphasefx: probably only when the MD5 of the password happens to be the same as the cleartext ;-)
#17:58:56phasefxha, that's a nifty password
#17:58:59jeffagJohn: the Dumper($user) call just before the $ws_ou ||= $user->home_ou; line should be helpful.
#18:00:04agJohnBeing a Perl innocent, I'm not getting the syntax right, presumably--not showing up anywhere. I have:
#18:00:06agJohnwarn Dumper('agJohn user = ' . Dumper($user));
#18:00:08agJohn $ws_ou ||= $user->home_ou;
#18:00:09agJohn That "warn" is perhaps spurious?
#18:00:41jeffno, the warn is useful because it will cause it to go to the error.log instead of print, which would (i think) send to the browser
#18:00:47jeffbut...
#18:01:02agJohnHey--anywhere's okay with me ....
#18:01:18phasefxagJohn: you don't need two dumpers there
#18:01:20jeffuse this instead: warn "agJohn user = ", Dumper($user);
#18:01:27phasefxjeff++
#18:02:09phasefxjeffdavis: where is the password being exposed? I see the md5sum that is part of the handshaking
#18:02:28jeffdavisphasefx: xul/staff_client/chrome/content/auth/controller.js +414 in trunk
#18:02:34phasefxthanks
#18:02:39agJohnAh, and perhaps I need to do an Apache reload for it to pick up on this rather than restarting the OSRF Perl modules....
#18:02:45jeffDumper($object) returns a string-based representation of $object. we want to use "warn" to output the "agJohn user = " mark plus the dump
#18:02:56jeffagJohn: yes, you will need to restart apache, and likely only apache.
#18:04:05jeffagJohn: apache reload should be sufficient (restart not required)
#18:04:09phasefxjeffdavis: ah, D_AUTH is disabled by default
#18:05:16phasefxI can see it being bad if folks aren't careful, though
#18:05:21moodaepo@wunder 56001
#18:05:21pinesolmoodaepo: Error: "wunder" is not a valid command.
#18:05:32moodaepo Whoops
#18:05:40phasefxsay they enable D_ALL and log to disk
#18:06:21jeffagJohn: the Dumper call should output $VAR1 = bless([an array goes here], 'Fieldmapper::actor::user' ); -- that's for a normal value, which we don't expect to find. I'm guessing we'll get an ILS Event object instead, not a Fieldmapper::actor::user
#18:06:55agJohnWell, that's cool--I get messages from apache's error.log showing the user info and then it repeats itself... And then the screen comes up! Wha? I'll paste the results.
#18:07:04phasefxone problem I find with Dumper and $logger (not sure about warn for Apache) is that the output can get truncated
#18:08:34lisppasteagJohn annotated #113422 "From Dumper" at http://paste.lisp.org/display/113422#1
#18:08:56jeffdavisphasefx: hmm, looks like D_ALL and D_AUTH are both set to false on my install, is there another sdump level that would override my D_AUTH setting?
#18:09:03jeffdavis(or possibly I am misunderstanding you)
#18:09:23agJohnSo, here I am looking at the Org Units screen with a messy error log, but otherwise all seems to be working...
#18:09:32jeffi'll bet the restart of apache cleared the problem.
#18:09:33phasefxjeffdavis: it could be a bug in how the logging works. My trunk client is not outputting D_AUTH lines to the console
#18:10:07agJohnWhat's odd is that I'd just barely rebooted the whole Evg server.... And this stuff has never worked before.... Trying other options....
#18:10:21jeffagJohn: this could fall under the category of "heisenbug"
#18:10:35jeffagJohn: if you reboot the whole thing it might cause it to happen again.
#18:10:44moodaepoheisenbug++ jeff++
#18:10:47agJohnTrue enough...
#18:11:11jeffagJohn: since after this reboot, you'd have no reason to restart apache after editing the Proxy.pm file.
#18:11:12phasefxheisenburger, where's the beef?
#18:11:19moodaepo wonders wouldn't this be a heisenfix?
#18:11:48jeffmoodaepo: only if adding the Dumper call turns out to have fixed it, and not the apache restart being what fixed it ;-)
#18:12:01agJohnWell, better call the client and have her get on it right now--despite the late hour.... Heisenfix++
#18:12:20jeffagJohn: i've got to run, good luck on reproducing. i'll look back later tonight to see if you were able to reproduce and what the output of the Dumper call was!
#18:12:28moodaepojeff: Well this has been a recurring problem which got fixed only by adding Dumber & then restarting apache
#18:12:37moodaepoIf it returns after a complete restart...
#18:12:52jeffdavisphasefx: bah nevermind, I was looking at trunk instead of at my actual staff client; D_AUTH is set to dump so it's working correctly
#18:12:54jeffdavisso a local config problem rather than a bug
#18:13:02phasefxjeffdavis: maybe forceDebugDump? ah, okay :)
#18:13:02agJohnJob 1 is to get the setup for the client done--I'll fiddle with it later....
#18:13:33agJohnThanks gents, 1 & all!
#18:13:46phasefxjeffdavis: I've always wanted to make a local interface for overriding the server-side error.js values, but never do
#18:14:34moodaepophasefx: On my wishlist is to add an option where staff can click send debug output to admin and it send the admin an email with the log.
#18:16:24phasefxmoodaepo: one thing SITKA did I thought was neat was set up URL strings such they could parse their apache logs for certain errors
#18:16:34jeffdavisI guess the easiest thing for us might be to modify our locale so it doesn't include the password in the staff.auth.controller.error_login string
#18:17:15moodaepophasefx: I wonder if it's documented somewhere, must be since they are just awesome.
#18:17:35phasefxjeffdavis: in my head I think the only reason that option was there at all was as a way of seeing if the password staff thought they were entering was really being entered
#18:17:58phasefxmoodaepo: in a launchpad ticket about inner print tree, it was mentioned
#18:18:47phasefxat this point in the life of the staff client, I'd be happy to see some heavy pruning of debug output.. especially the stuff going out with raw dumps and not using error.js
#18:19:30phasefxof course, I say that, and then someone will hit me with a problem where I wish there was more debug output available :)
#18:20:19phasefx takes a break *waves*
#18:21:03phasefxbut I bet it would speed things up a bit (less I/O)
#18:25:58youdonotexist has quit IRC
#18:51:12jeffdavis is now known as jeff-afk
#20:08:07rjackson-isl has quit IRC
#20:11:04bshum has joined #evergreen
#20:23:25jamesrf has quit IRC
#20:43:53bshum has quit IRC
#21:58:24dbs has joined #evergreen
#22:03:06pmplett has quit IRC
#23:23:50pmplett has joined #evergreen
#23:39:59jeff-afk is now known as jeffdavis
#23:48:43dbsyay bibliomation! http://biblio-os.blogspot.com/2010/08/you-came-you-saw-you-ate-some-ice-cream.html
< Tuesday, August 10th, 2010Raw Log FileThursday, August 12th, 2010 >