Time |
Nick |
Message |
05:42 |
|
jonadab joined #evergreen |
06:01 |
pinesol |
News from qatests: Testing Success <http://testing.evergreen-ils.org/~live> |
12:00 |
|
miker joined #evergreen |
12:05 |
|
gmcharlt joined #evergreen |
12:11 |
|
Dyrcona joined #evergreen |
12:12 |
Dyrcona |
I know that practically no one is paying attention today, but I'm working on something and want to "talk" about it, even if only to myself. |
12:14 |
Dyrcona |
So, I'm modifying some code to use savepoints, but subtransactions can be bad (https://postgres.ai/blog/20210831-postgresql-subtransactions-considered-harmful) in large, busy databases with replication. (Hello, CW MARS!) |
12:15 |
Dyrcona |
Instead, I could split the work into multiple transactions with xact_commit where I would have used release savepoint, but each commit forces a write to the xlog, which is also expensive. |
12:18 |
Dyrcona |
I've considered adding a storage function or even a stored procedure, but using BEGIN / EXCEPTION WHEN ... / END also creates a substransaction. |
12:21 |
Dyrcona |
I suppose I could write a storage function to use upsert. Does that work on errors caused by triggers? I guess I can give it a try. |
12:29 |
Dyrcona |
Nope. Doesn't work on a trigger function: ERROR: constraint in ON CONFLICT clause has no associated index |
12:31 |
Dyrcona |
So, I could catch that with EXCEPTION WHEN, but there we are back to subtransactions. I might as well use savepoint and see what happens. |
12:31 |
Dyrcona |
We only use savepoint in one other place that I can find in the Perl code, and that's in booking. |
12:34 |
Dyrcona |
I don't really have time to benchmark the options, and I have a hard time simulating production loads in my development environment, so.... |
12:42 |
Dyrcona |
Y'know, the documentation doesn't say that ROLLBACK TO SAVEPOINT frees resources in the way that RELEASE SAVEPOINT does, but it also doesn't say that it doesn't, and complicated examples are hard to find. |
12:54 |
Dyrcona |
My hunch is that we use savepoint so little that this will not have a detrimental effect. |
12:54 |
|
jonadab joined #evergreen |
12:55 |
Dyrcona |
Most of the applications that have had problems with it use substransactions even when it's not necessary. |
12:59 |
Dyrcona |
Ah, I missed this in the documenation for rollback to savepoint: The savepoint remains valid and can be rolled back to again later, if needed. |
13:00 |
Dyrcona |
This changes how I'll create multiple savepoints. |
13:03 |
Dyrcona |
Hmm. If I release it and set it again after each succesful update, then I only need 1 save point name, so the default would work. |
13:17 |
Dyrcona |
@later tell csharp_ I was looking at your upgrade script on Friday, and you don't have to run pingest.pl from the Evergreen source tree. It gets installed in /openils/bin/. |
13:17 |
pinesol |
Dyrcona: The operation succeeded. |
13:35 |
Dyrcona |
Hmm... CStoreEditor::release_savepoint doesn't seem to be working with named savepoints, unless I'm messing up the name..... |
13:39 |
Dyrcona |
Huh? set_savepoint doesn't seem to get run. At least, I don't see the log statement. |
13:40 |
Dyrcona |
hmm. maybe it doesn't work with always_xact? |
13:46 |
* Dyrcona |
waits on eg_db_config for the umpteenth time.....silly typos.... |
13:49 |
Dyrcona |
Yeahp. Have to use xact_begin. |
13:55 |
Dyrcona |
Ugh.... |
13:55 |
Dyrcona |
Trying to split a commit during rebase. |
13:56 |
Dyrcona |
I never remember exactly how. |
13:57 |
Dyrcona |
git reset HEAD~ |
13:57 |
Dyrcona |
In case you're wondering. |
13:59 |
Dyrcona |
Well, I still manged to mess it up. |
14:17 |
csharp_ |
Dyrcona: thanks for the info! |
14:22 |
Dyrcona |
csharp_: You're welcome. |
14:24 |
Dyrcona |
I believe I have something that works with savepoint. After 1 more test run with 1 item at a time, I'll take a break. After that, I'll write a program to test a mix of items that should fail and succeed. If that works, I'll make the necessary changes to the staff client, and then update the release notes and squash the branch again. |
14:26 |
Dyrcona |
Yeah, tests still work. Maybe I'll add the test of multiple copies to the live test file rather than write a whole new program.... |
16:07 |
Dyrcona |
So, I'm returning an array ref in the back end call. Are there examples of using such a thing in AngularJS? |
16:13 |
Dyrcona |
I think I can just use it as an array. We'll see. |
16:32 |
Dyrcona |
Anyone know if I can set values in a toast? I though I could just assign a field on $scope. |
16:40 |
Dyrcona |
git commit message: "A fix for the fix" :) |
16:41 |
Dyrcona |
Eh, nope. nToast.open doesn't seem to work. |
16:42 |
Dyrcona |
"ngToast.open is not a function" |
16:47 |
Dyrcona |
Well, now my toast is empty.... |
16:54 |
Dyrcona |
I'll let this go for now and I might look into it later. I've already gone over time. |
17:53 |
|
mantis joined #evergreen |
18:00 |
pinesol |
News from qatests: Failed Installing AngularJS web client <http://testing.evergreen-ils.org/~live//archive/2022-01/2022-01-08_16:00:02/test.28.html> |
18:04 |
|
jvwoolf1 joined #evergreen |
18:32 |
JBoyer |
Oops, accidentally posted this on the feeds channel. So, if you are annoyed like I am about that stupid mess in the mile-long log above it appears to be a forgotten line that was supposed to be removed from the colors package: https://github.com/Marak/colors.js/blob/master/lib/index.js |
18:32 |
JBoyer |
I wonder how many more dependencies he pulled in to use .zalgo on that. 🙄 |
19:56 |
mantis |
JBoyer: we're running our upgrade and running into the same log issue. Do you know what the exact directory is to apply this fix? |
22:57 |
|
jvwoolf1 left #evergreen |