Evergreen ILS Website

IRC log for #evergreen, 2025-05-09

| Channels | #evergreen index | Today | | Search | Google Search | Plain-Text | summary | Join Webchat

All times shown according to the server's local time.

Time Nick Message
00:23 sandbergja joined #evergreen
08:37 mmorgan joined #evergreen
09:13 Dyrcona joined #evergreen
09:24 eeevil Dyrcona: re your <link> adventure yesterday, there are some related code comments at the top of a2f2ff1523aea50f4bfc2a3f29f1776336f3a398 that may be helpful when adding/adjusting fields and links
09:24 eeevil and yes, if there's not a column behind the field, it MUST be marked virtual
09:28 mmorgan1 joined #evergreen
09:28 Dyrcona eeevil: Yeah, I remembered your second comment when it failed on me the first time.
09:29 Dyrcona Meaning, my brain said, "Of course it needs to be virtual. The field doesn't actually exist."
09:30 mmorgan joined #evergreen
09:30 Dyrcona I'm expreimenting with it some more. I may change the field and link to be called renewal and make it a "might_have." I suspect that it's never going to return more than 1 renewal.
09:48 mmorgan1 joined #evergreen
09:50 Dyrcona Hm... I'm trying to use idlist with cstoreeditor->search_action_circulation with a prcud personality, and I'm getting objects bacK: my $circulations = $e->search_action_circulation([{stop_fin​es=>'RENEW'},{idlist=>1,limit=>1000}]);
09:51 * Dyrcona tries it with cstore.
09:53 Dyrcona Huh. Not working there, either. I thought idlist worked with search_... .
09:53 Dyrcona In that case, I'll change my approach to this test.
10:10 Dyrcona Gonna take a while to go through 5.1 million circulations, 1000 at a time. :)
10:13 Dyrcona I probably don't need to go through all of them to find out out what I wan to know.
10:22 eeevil for idlist, I think you want this:  $e->search_action_circulation([{stop_fine​s=>'RENEW'},{limit=>1000}],{idlist=>1});
10:23 eeevil (me personally, I'd prefer if we had $e->id_list_action_circulation rather than overloading search, but here we are)
10:30 Dyrcona eeevil: Oh. That's probably correct. I just blew my services up with this thing.
10:32 Dyrcona Ugh. and I killed my tmux pane, so I have to type my command line all over again.
10:35 Dyrcona eeevil: I switched to just fleshing the renewals during the search and it's working for what I'm trying to do. I just want to see if it ever returns more than 1. I'm 99.999% sure that it never will.
10:38 eeevil Dyrcona: did you search for any code using the field to store, say, all subsequent renewals for a circ in the biz-logic layer? (though, if there was no field before, that wouldn't be a thing... so probably nm)
10:57 Dyrcona If there are any, they're not working.
10:58 Dyrcona I can look but it would be a complicated regexp.
11:00 Dyrcona Looking at the link definition, it can never return more than 1 row anyway.
11:03 Christineb joined #evergreen
11:16 Dyrcona Huh. my tmux pane keeps getting killed. I wonder if I'm using up all the ram or something.
11:18 Dyrcona Yeahp. oom-killer took my cstore process AND my tmux process.
11:18 Dyrcona I suspect we have a memory leak in cstore.
11:20 Dyrcona eeevil: I tried the following regexp with a multiline, recursive pcregrep search of the Perl code and came up with nothing: ["']?flesh_fields["'].*?=>.*?["']?cir​c["']?.*?=>.*?\{[^}]+["']renewals["']
11:33 jihpringle joined #evergreen
11:41 kmlussier joined #evergreen
11:46 kmlussier Does Evergreen have a way to automatically assess a fee to a patron account for a library card? I couldn't find anything, but wanted to make sure I'm not missing anything.
11:54 csharp_ kmlussier: we've gotten the same request before, I think, but there's not currently a way
11:54 csharp_ should be simple to add imho
11:54 kmlussier csharp++
11:54 kmlussier csharp_: Thanks for confirming!
11:55 Dyrcona You can probably do it with an action trigger. I think people have set up a welcome message, you could do something like that but add a fee.
11:56 Dyrcona Well, that would still probably require new code for the reactor, so never mind.
11:56 csharp_ Dyrcona: that approach occurred to me, as did a YAOUS
11:56 kmlussier Dyrcona++ #For thinking through the possibilities!
11:57 kmlussier csharp_: If we were to implement one, we would prefer that it be based on something more granular, like permission groups.
11:57 csharp_ maybe the setting could be an array of perm group ids?
11:58 csharp_ spitballing
11:58 Dyrcona Yeah, I was going to say it would probably depend on the profile.
11:58 kmlussier csharp_: That would work.
11:59 kmlussier In our case, it would never be a high enough priority to try to develop it, though. Charging for library cards is generally frowned upon in these parts.
11:59 Dyrcona In that case, you'd probably want 2 settings: one for the amount and for the list.
11:59 csharp_ not sure if the settings UI would let you have a user-friendly dropdown or if that would be additional development
11:59 Dyrcona A lot of libraries still charge out of state patrons for a card.
12:01 Dyrcona Hmm.. Then what if I want to charge $20 for this card and $30 for that card?
12:01 kmlussier Dyrcona: In this case, the question came up in a discussion around decertifed municipalities. The topic du jour.
12:02 Dyrcona Oh, yeah.... :(
12:02 kmlussier decertified, even.
12:02 kmlussier Hey, it's Friday! You know what that means when I'm in IRC!
12:02 kmlussier @dessert [someone]
12:02 * pinesol grabs some Syntactic Sugar for akilsdonk
12:03 kmlussier @coffee [someone]
12:03 * pinesol brews and pours a cup of El Salvador Los Planes Pacamara, and sends it sliding down the bar to dluch
12:03 kmlussier @tea [someone]
12:03 * pinesol brews and pours a pot of Wuyi Mountain Big Red Robe, and sends it sliding down the bar to JBoyer (http://ratetea.com/tea/verdant/w​uyi-mountain-big-red-robe/7311/)
12:03 Dyrcona I'm not sure that I'd go the route of charging non-certified library patrons. I'd just block them. That's what [I think] the MBLC wants.
12:04 Dyrcona Maybe if they're from one of the two towns that never had a public library, or is it only 1?
12:06 Dyrcona Been a while since I looked, but IIRC, there's 1 town in Mass that never had a public library and less than 5 that never applied for state aid.
12:06 kmlussier Dyrcona: The MBLC doesn't express a preference. Once they become decertified, a library can decide to lend, not lend, or charge to lend.
12:07 kmlussier There is a CW MARS that charges to lend, and one of our directors found that policy.
12:07 Dyrcona Well, OK. I was possibly [mis]remembering something someone said.
12:08 Dyrcona Yeah. Some of us would prefer that they just don't lend.
12:09 Dyrcona Not sure that the consortium has an official policy on that. Not sure that we can, either.
12:09 kmlussier Dyrcona: It's much easier for configuration purposes!
12:09 Dyrcona Well, if they give them a card with the CWMARS library as the home_ou, it works. We can also restrict some permission groups to local use only.
12:10 Dyrcona We have used a decertified patron group before.
12:11 kmlussier Dyrcona: You have a policy, but it basically says it's a local library decision.
12:12 jeff "the policy is that there is no policy" :-)
12:12 Dyrcona jeff++
12:12 csharp_ one could theoretically add a card_fee column to permission.grp_tree (nullable)
12:12 kmlussier jeff: Our attorney could explain to you why it's important to have a policy, even if it ends up being a local library decision. :)
12:13 Dyrcona csharp_: I was thinking about that, but then libraries would have to have their own permissions groups if the fees are different.
12:13 csharp_ ah - always seeing it from the PINES/monolithic policies perspective :-)
12:14 Dyrcona OK. I'm going to see if adding an 'undef $circulations;' to my Perl script makes the crashes go away.
12:17 csharp_ might not be the best way, but instead of YAOUS, create a actor.card_fee table that could have columns for library, perm_grp, amount, and a boolean automatically charge field?
12:17 Dyrcona Oh, wait. That script won't work since I updated the IDL again.
12:17 Dyrcona That would be the most flexible way to do it.
12:20 csharp_ maybe a "generate fee" checkbox in the patron registration UI? thinking of ways to 1) prevent multiple charges and 2) allow staff a way to not charge
12:21 csharp_ and maybe "account fee" is a better way to think of it since replacement library cards also have a cost in our case
12:24 kmlussier csharp_: If a library has chosen to charge a fee, I think there would be interest in preventing staff from using the option in #2
12:26 csharp_ just thinking of the use case where the staff have to go back and make a change to the account and re-save - probably other ways to prevent that
12:27 kmlussier Have the fee apply at the time the privilege expiration is set?
12:28 csharp_ hmm - that feels more action-triggery to me - but I'm throwing lots of spaghetti at the wall
12:28 csharp_ also have Covid brain :-/
12:28 csharp_ actually off sick, but bored
12:28 csharp_ maybe A/T is the right way
12:29 csharp_ the rest seems sane to me - account fee table, etc.
12:29 Dyrcona I think you'd apply the fee at account creation, and that does feel action triggery.
12:30 csharp_ one A/T to handle initial registration, one to handle expirations, one to handle notices about expirations
12:30 csharp_ or more than one if you're sending reminders
12:32 Dyrcona Nothing has to be done to expire accounts. They just expire. You might wan the reminder notices, and then possibly another fee when the account is renewed.
12:34 csharp_ yeah, that makes more sense so you're not auto-charging for something the patron may not do
12:34 csharp_ it does need to be active
12:47 jihpringle joined #evergreen
12:52 Dyrcona undef $cirulcations' does not appear to help.
12:58 kmlussier1 joined #evergreen
12:58 kmlussier1 left #evergreen
13:01 Dyrcona Think I'll run that again and see if it's the drone or Perl that's using all the memory.
13:05 JBoyer Re: AT I think that the on-create trigger is easy enough, and when staff click the "update expire[sic] date" button it could fire off another trigger for a renewal.
13:06 JBoyer And so long as it's not abused, staff could just change the date manually to avoid adding an additional bill.
13:17 Dyrcona The memory leak (if any) is definitely in cstore. My drones keep getting larger while the Perl progam's vsz goes up a little and then back down.
13:17 mmorgan joined #evergreen
13:19 Dyrcona One of the drones is using over 1GB of vsz.
13:19 Dyrcona berick How 'bout we implement rstore in Rust as a replacement for cstore and pcrud?
13:34 Dyrcona The drones are all using about 3GB each.
13:39 berick Dyrcona: does the basics https://github.com/kcls/evergreen-universe-rs/bl​ob/main/evergreen-services/store/src/methods.rs
13:42 Dyrcona I haven't updated my clone of that repo in a while. I should have a look.
13:42 Dyrcona berick: I think there's a memory leak in cstore, at least with Redis. I'm testing the same thing with Ejabberd to see if the problem is more general.
13:48 jeffdavis I'm getting "connection refused" when I try to visit git.evergreen-ils.org in a browser. git pull works fine
13:49 Dyrcona speaking of oom-killer. jeffdavis++
13:49 Dyrcona I'm going to reboot git.evergreen-ils.org to make sure everything comes back up correctly.
13:53 Dyrcona systemctl status says it's all good.
13:59 jeffdavis Dyrcona++
13:59 jeffdavis working for me now, thanks!
14:05 mmorgan1 joined #evergreen
14:36 berick Dyrcona: mem leak in cstore+redis wouldn't be the craziest thing in the world.  running latest opensrf main I assume?
14:36 berick cruising along OK here w/ max cstore requests at 2k
14:37 Dyrcona berick: Yeahp. I see it with Ejabberd, too, but it leaks much less memory.
14:37 Dyrcona max cstore requests is 1000 on both machines.
14:38 Dyrcona I'll make some notes and write it up on Lp.
14:38 Dyrcona Might see if I can get valgrind to tell me what's wrong or figure it out with some clever macros.
14:43 Bmagic Dyrcona++
15:20 Dyrcona I've started a bug write up in my text editor. I'm going to let this simmer and have another look next week before posting it. I would like to have a place tin the code to point at.
15:25 mmorgan joined #evergreen
15:50 jihpringle joined #evergreen
16:59 mmorgan left #evergreen

| Channels | #evergreen index | Today | | Search | Google Search | Plain-Text | summary | Join Webchat