Bugzilla – Attachment 37597 Details for
Bug 13606
Batch modification for records is limited to ~500
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
[SIGNED-OFF] Bug 13606: Remove previous job data from the session
SIGNED-OFF-Bug-13606-Remove-previous-job-data-from.patch (text/plain), 2.53 KB, created by
Frédéric Demians
on 2015-04-09 06:53:55 UTC
(
hide
)
Description:
[SIGNED-OFF] Bug 13606: Remove previous job data from the session
Filename:
MIME Type:
Creator:
Frédéric Demians
Created:
2015-04-09 06:53:55 UTC
Size:
2.53 KB
patch
obsolete
>From 7ae75cab40cecc54d3bcdfd576019c676318cf4b Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@biblibre.com> >Date: Wed, 21 Jan 2015 15:35:30 +0100 >Subject: [PATCH] [SIGNED-OFF] Bug 13606: Remove previous job data from the > session > >Bug 11395 uses the session to store the report sent to the interface >(update on biblio XX OK, etc.). > >If the session is stored in mysql, the max size of the >sessions.a_session will be reached easily (TEXT field). > >To reproduce: >0/ Set SessionStorage to 'mysql' >1/ Create a file with 500 biblionumbers: > mysql -e "select biblionumber from biblio limit 500;" | tail -n 500 > /tmp/biblionumbers.txt >2/ Define a marc modification template (something like "delete field 99$9" is nice) >3/ Load the /tmp/biblionumbers.txt in the batch biblio modification tool >4/ Repeat 3 >You will get: > Syck parser (line 1534, column 6): syntax error at > /usr/lib/i386-linux-gnu/perl5/5.20/YAML/Syck.pm line 75. >None Koha page is reachable. > >It comes from get_template_and_user > checkauth > get_session > >l.1595 $session = new CGI::Session("driver:MySQL;serializer:yaml;id:md5", $sessionID, {Handle=>$dbh}); > >5/ Get your sessionID contained in your CGISESSID cookie >Have a look at the value a_session in the sessions table: >mysql> select a_session from sessions where id="YOUR_SESSIONID"; > >You should see that the yaml is not correctly ended. >The size of the DB field has been reached and the yaml is truncated. > >Test plan: >0/ Delete your CGISESSID cookie >1/ Try to reproduce the previous issue >2/ After the second batch, have a look at the sessions table and confirm >that only one job_$JOB_ID exist in the yaml > >Signed-off-by: Frederic Demians <f.demians@tamil.fr> > >I can reproduce de bug. I can see also the useless C4::BackgroundJob session >data. I confirm that modifying two consecutive 500 records batches broke >entirely the session YAML representation deserialization. And finally I >confirm that this patch fixes all those issues. >--- > C4/BackgroundJob.pm | 5 +++++ > 1 file changed, 5 insertions(+) > >diff --git a/C4/BackgroundJob.pm b/C4/BackgroundJob.pm >index 3ab5125..03164a1 100644 >--- a/C4/BackgroundJob.pm >+++ b/C4/BackgroundJob.pm >@@ -97,6 +97,11 @@ sub _serialize { > > my $prefix = "job_" . $self->{'jobID'}; > my $session = get_session($self->{'sessionID'}); >+ while ( my ( $param_name, $value ) = each %{$session->param_hashref} ) { >+ if ( $param_name =~ m|^job_| and $param_name ne $prefix ) { >+ $session->clear([ $param_name ]); >+ } >+ } > $session->param($prefix, $self); > $session->flush(); > } >-- >2.3.5
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 13606
:
35444
|
35445
|
37597
|
37601
|
37621
|
37627
|
37633
|
37634
|
37635
|
37636
|
37637
|
37648
|
37658
|
37660
|
37662
|
37663
|
37664
|
38058
|
38059
|
38060
|
38061
|
38431