Time |
Nick |
Message |
06:00 |
pinesol |
News from qatests: Testing Success <http://testing.evergreen-ils.org/~live> |
07:24 |
|
rjackson_isl_hom joined #evergreen |
07:51 |
|
mantis joined #evergreen |
08:13 |
|
Dyrcona joined #evergreen |
09:16 |
|
Stompro joined #evergreen |
09:17 |
|
StomproJ joined #evergreen |
09:55 |
|
Keith-isl joined #evergreen |
10:59 |
|
jihpringle joined #evergreen |
12:27 |
|
nfBurton joined #evergreen |
12:53 |
nfBurton |
I am having an issue with a number of my 'Hold Ready For Pickup' notifications. Some pass through and complete but a large number are being marked as invalid. I checked the open_ils.trigger_stderr.log and got this many times over: Use of uninitialized value in subtraction (-) at /usr/local/share/perl/5.22.1/OpenSRF/AppSession.pm line 952. |
12:53 |
nfBurton |
Any ideas how to debug the invalid action trigger emails? |
12:54 |
Dyrcona |
"Invalid" ususally means the patron has no email address. If you look at the template output do you see "To: " with nothing after it? |
12:55 |
Dyrcona |
For SMS it usually means that SMS is not set up for the patron. Unfortunately, these events are ham fisted and generated for all holds for all patrons. |
12:58 |
csharp_ |
nfBurton: the validator for that event def is probably "HoldIsAvailable", which is a subroutine in Validator.pm (in the perl tree) |
12:58 |
Dyrcona |
Hmm... What csharp said. :) |
12:58 |
nfBurton |
I'm not getting a template output at all for these ones |
13:00 |
csharp_ |
if hold is not cancelled and not fulfilled there is a value in current_shelf_lib (and the shelf lib is the same as the hold pickup lib) and there are values in capture_time, current_copy and shelf_time and the copy status is "On Holds Shelf", consider it valid |
13:00 |
Dyrcona |
I'm thinking of error state. |
13:00 |
Dyrcona |
csharp_++ |
13:00 |
nfBurton |
Yeah, I'm looking at it now |
13:00 |
csharp_ |
Dyrcona: lack of email/sms actually doesn't result in "error" - it blindly creates the event output and tries to mail it |
13:01 |
Dyrcona |
Yeah, that, too..... |
13:01 |
Dyrcona |
@blame doing too many things at once. |
13:01 |
pinesol |
Dyrcona: doing too many things at once. wants the TRUTH?! doing too many things at once. CAN'T HANDLE THE TRUTH!! |
13:01 |
nfBurton |
No template OR error output |
13:01 |
csharp_ |
we use the action_trigger_filters.json to filter out accounts with no email addresses |
13:01 |
csharp_ |
nfBurton: "invalid" means the output (of either type) would not be created |
13:01 |
nfBurton |
ah |
13:02 |
nfBurton |
Some are fine, but it's just the holds |
13:02 |
csharp_ |
it's a way to stop the A/T from moving forward if it doesn't meet the validity test |
13:02 |
nfBurton |
From the json file? |
13:02 |
csharp_ |
what we need (as miker has talked about in the past) is a way to have multiple validators for each event def |
13:03 |
Dyrcona |
The hold was likely picked up or changed state between the time the event was created and the delay was met. |
13:03 |
csharp_ |
right |
13:03 |
jeff |
what percentage is "a large number"? |
13:03 |
csharp_ |
holds are extremely volatile |
13:04 |
jeff |
and is "many times over" in the logs about the same as the number of holds being marked invalid? |
13:04 |
* Dyrcona |
was just grousing to himself about "log noise" wrt something else, i.e. in the apache logs. |
13:04 |
csharp_ |
nfBurton: this is our action_trigger_filters.json file from the server that runs A/T: https://pastebin.com/JNGg8YWQ |
13:05 |
nfBurton |
around 66 yesterday |
13:05 |
csharp_ |
(with thanks to berick for working out the JSON query stuff for us) |
13:05 |
nfBurton |
csharp_++ appreciate the share! |
13:05 |
csharp_ |
nfBurton: happy to help! |
13:06 |
jeff |
the AppSession.pm line in question is like this: |
13:06 |
jeff |
$self->{_duration} = time - $self->{_start} if ($self->{complete}); |
13:06 |
nfBurton |
dont see holds in there though |
13:06 |
nfBurton |
yes |
13:06 |
jeff |
and that looks like it might be a red herring, unrelated to the cause of your invalid events... |
13:06 |
nfBurton |
On the complete. I think it's meant to fail and mark invalid |
13:06 |
* jeff |
wonders which of those values is uninitialized |
13:06 |
nfBurton |
Checking if complete, but it isn't so no complete time |
13:07 |
nfBurton |
If I understand correctly. I spent some time on that herring |
13:07 |
jeff |
guessing $self->{_start} is uninitialized |
13:07 |
Dyrcona |
FYI: The releases are done as far as git is concerned, so if anyone is itching to commit anything feel free to scratch that itch. |
13:07 |
jeff |
but not sure why. |
13:07 |
csharp_ |
A/T is a good feature, but very complex - you basically need to walk through all the perl to know what's going on\ |
13:08 |
nfBurton |
How do I link the invalid event to a user? |
13:08 |
csharp_ |
nfBurton: the target should be a hold request |
13:08 |
pinesol |
[evergreen|Jason Stephenson] Forward port the 3.6.3 to 3.6.4 db upgrade script - <http://git.evergreen-ils.org/?p=Evergreen.git;a=commit;h=0eca601> |
13:08 |
nfBurton |
Ah okay |
13:08 |
nfBurton |
It's not actually a key |
13:08 |
nfBurton |
So I wasn't sure |
13:08 |
csharp_ |
it should be a foreign key to action.hold_request |
13:09 |
jeff |
no, it is not and should not be. |
13:09 |
Dyrcona |
The target varies by event, so the key is not in the able. |
13:09 |
jeff |
target varies based on hook's core type. |
13:09 |
nfBurton |
yeah |
13:09 |
nfBurton |
That |
13:09 |
csharp_ |
sorry, you're right |
13:09 |
csharp_ |
it will be the id for action.hold_request, but not a FK |
13:10 |
csharp_ |
I *know* that but was mispeaking about it :-) |
13:10 |
nfBurton |
I've had complaints of hold notices not going out lately and it looks like 50-100 a day are invalid :S |
13:10 |
nfBurton |
Thanks for the info though |
13:11 |
jeff |
action_trigger.event.target will have a value that refers to an object. what type of object depends on the event def's hook's core_type. :-) |
13:11 |
csharp_ |
now notices that get created in the DB and are not received on the patron end could be an issue with email server setup |
13:11 |
csharp_ |
SPF/DMARC/etc |
13:11 |
csharp_ |
the MTA should have logs to help you with that part |
13:13 |
csharp_ |
most of the time, our "patron didn't receive the notice" issues come down to SPF record for the "sending" domain we put in the outgoing mail not allowing our server to send on their behalf |
13:14 |
csharp_ |
https://mxtoolbox.com/spf.aspx is a good tool for doing that quickly |
13:15 |
Dyrcona |
Or its in their spam folder, or the patron just doesn't manage their mail and its lost in 10,000 other messages in their inbox. |
13:15 |
csharp_ |
yep |
13:15 |
Dyrcona |
Or.... the recipent MTA accepts the mail with a 200 OK, and then discards it without putting in the patron's mail box, just because. |
13:16 |
csharp_ |
that's the worst outcome |
13:17 |
Dyrcona |
You'd be surprised how many email servers are not configured correctly, or maybe you wouldn't be. |
13:22 |
nfBurton |
Nah I'm not surprised. We set our DMARCs and now everyone outside the org is suspicious lol |
13:28 |
|
book` joined #evergreen |
13:47 |
nfBurton |
Heh, good call on it being the email "maps_find: canonical_maps: @yahoo.ca: not found" |
13:49 |
nfBurton |
Now to find a fix! |
13:51 |
* Dyrcona |
wonders about removing milestones on some bugs but decides to defer that decision. |
13:51 |
Dyrcona |
nfBurton: You may not have a fix if yahoo.ca no longer exists or no longer has a MX record. |
13:58 |
nfBurton |
IDK though. All my other notices are going out....Just the holds have been an issue lately |
14:00 |
Dyrcona |
nfBurton: Are you worried about the "invalid" ones, still? |
14:01 |
Dyrcona |
Those holds were messed with, so they're not valid to generate notices. |
14:02 |
nfBurton |
I just wish it would tell me why they were not valid. It's the not knowing. lol |
14:02 |
Dyrcona |
I don't worry about it. |
14:03 |
Dyrcona |
When you get reports of patrons not getting emails, you can't really do anything without their email address. Usually, it's in their spam/trash folder. |
14:03 |
Dyrcona |
There really isn't much you can do beyond check your MTAs logs after you verified that the events were generating notices. |
14:09 |
|
mantis1 joined #evergreen |
14:14 |
nfBurton |
I suppose I'll come down off this ledge then |
14:45 |
|
nfBurton joined #evergreen |
15:59 |
Dyrcona |
Clark needs proper logging |
17:10 |
miker |
csharp_: yes! I want stacked validators, collectors, reactors, all of em! :) that would let us create simple, reusable validators and reactors, rather than complicated special purpose ones |
17:10 |
miker |
he said 4 hours later |
17:14 |
miker |
@later tell nfBurton once https://bugs.launchpad.net/evergreen/+bug/1859707 gets in, you'll have a usable interface to look at triggered events, and can explore in the staff client! :) |
17:14 |
pinesol |
miker: The operation succeeded. |
17:14 |
pinesol |
Launchpad bug 1207533 in Evergreen "duplicate for #1859707 Triggered event log times out for large-data sites" [Medium,Confirmed] |
17:55 |
|
Stompro joined #evergreen |
18:00 |
pinesol |
News from qatests: Failed Installing Angular web client <http://testing.evergreen-ils.org/~live//archive/2021-06/2021-06-25_16:00:02/test.29.html> |