http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=14494 Bug ID: 14494 Summary: Terribly slow checkout caused by DateTime->new in far future Change sponsored?: --- Product: Koha Version: master Hardware: All OS: All Status: NEW Severity: normal Priority: P5 - low Component: Architecture, internals, and plumbing Assignee: gmcharlt@gmail.com Reporter: m.de.rooy@rijksmuseum.nl QA Contact: testopia@bugs.koha-community.org An expiry date of 9999-12-31 for organizations was a nice idea :) But checking out an item to that patron takes 1 minute or longer ! The cause? The following lines in CanBookBeIssued seem to be the main cause: my $expiry_dt = DateTime->new( year => $y, month => $m, day => $d, time_zone => C4::Context->tz, ); This call takes forever with 9999-12-31 when the timezone is not 'floating' or 'UTC', but e.g. Europe/Amsterdam. If the timezone is UTC, it takes 0.0002 seconds. DateTime gives the following advices: === Do not try to use named time zones (like "America/Chicago") with dates very far in the future (thousands of years). The current implementation of DateTime::TimeZone will use a huge amount of memory calculating all the DST changes from now until the future date. Use UTC or the floating time zone and you will be safe. •use UTC for all calculations If you do care about time zones (particularly DST) or leap seconds, try to use non-UTC time zones for presentation and user input only. Convert to UTC immediately and convert back to the local time zone for presentation The results DateTime.pm produces are predictable and correct, and mostly intuitive, but datetime math gets very ugly when time zones are involved ... === We are not doing that currently. We use in C4::Context: DateTime::TimeZone->new(name => 'local') Could we implement the calculation/presentation advice of DateTime in Koha somehow? -- You are receiving this mail because: You are watching all bug changes.