Peter Rabbitson [Wed, 9 Mar 2016 16:48:16 +0000]
(travis) Strangely `cpan .` does not work in certain configs
No intention to investigate further at this time
Peter Rabbitson [Tue, 8 Mar 2016 17:29:41 +0000]
(travis) Make sure DEVREL_DEPS + CLEANTEST-false behaves as intended
This lapse was the reason https://github.com/Test-More/test-more/issues/637
went undetected for a while (also made me aware of RT#112312, ARGH!)
Matthew Horsfall [Tue, 8 Mar 2016 14:15:04 +0000]
Much simpler sure-flush on dirty exit ( ribasushi-- # overcomplicating )
Peter Rabbitson [Sat, 5 Mar 2016 14:32:11 +0000]
Restructure thread/fork tests to run with maximum concurrency
Add better exit handling on older perls: the thread-related failures on
global destroy have nothing to do with what we want to test. Activated by
setting $ENV{DBICTEST_DIRTY_EXIT}
Also reduce the default amount of workers - 10 is too many
Dagfinn Ilmari Mannsåker [Mon, 7 Mar 2016 15:25:59 +0000]
Fix erroneous use of multidimensional array emulation in
1fb834df
Peter Rabbitson [Sun, 6 Mar 2016 06:08:56 +0000]
(optdeps) _gen_pod can *very much* fail, not sure what I was thinking
Peter Rabbitson [Sat, 5 Mar 2016 13:43:44 +0000]
These files are not used by anything - remnants from the distant
ea2e61bf
Peter Rabbitson [Fri, 4 Mar 2016 18:55:39 +0000]
Apparently -i and -jN do not work on win32, what the hell
These fixes together with RT#112706 make distbuilding on SighOS possible again
Also adjust a number of whitespace checks to work properly, ensuring the
distdir built on a normal OS and on Win32 match.
Read under diff -w -C
Peter Rabbitson [Fri, 4 Mar 2016 15:24:27 +0000]
More robust behavior of ANFANG.pm, also guard against sitecustomize.pl
Peter Rabbitson [Thu, 3 Mar 2016 11:24:55 +0000]
Do not load DBIC::Optional::Dependencies at runtime unless we need to
Peter Rabbitson [Sun, 10 Jan 2016 14:26:40 +0000]
(optdeps) One last pass through tests, streamline skip messages
Peter Rabbitson [Mon, 11 May 2015 10:39:39 +0000]
Get rid of Path::Class ( that *does* feel good )
This was a rather long journey (I've been meaning to do this since ~2013).
As everything else it turned out more complex than I anticipated. Notably
due to having to implement from semi-scratch things that a dev should usually
never worry about >:( Just look at the amount of stuff one can't reasonably
trust these days (pay attention to the comments):
git show
5d54c117 | perl -ne 'print if 155..304' | less
git show
358a3aa7 | perl -ne 'print if 407..453' | less
There is a tangible difference in the smoke times due to a leaner set of deps
(though not as big as one would hope... yet). Sample timings as follows:
for n in $(seq 26); do
dbic_trv_diffable() {
perl -0777 -n -E '
print ( map { "$ENV{cur}: $_\n" } map { split /\r?\n/, $_ }
$_ =~ /(^TRAVIS_PERL_VERSION.+)/m,
$_ =~ / \QSetting environment variables\E .+? (?:\r?\n)+ (.+?) (?: \r?\n){2} /xms,
$_ =~ /(^.*Configuration phase seems to have taken.*)/m,
);
say (
$_ =~ /(^[^\n]*?List of loadable modules .+?)^[^\n]*?List of loadable modules/ms
);
'
}
x=$((
112987257 + $n)) &&\
y=$((
113113497 + $n)) &&\
echo -e "$x => $y\n========\n" &&\
diff -U0 \
<( wget -qO- s3.amazonaws.com/archive.travis-ci.org/jobs/$x/log.txt | \
cur=$x dbic_trv_diffable )\
<( wget -qO- s3.amazonaws.com/archive.travis-ci.org/jobs/$y/log.txt | \
cur=$y dbic_trv_diffable )
done | less
P.S. The above is hideous, yes, but you can run it in your terminal *directly*
Peter Rabbitson [Tue, 1 Mar 2016 20:49:56 +0000]
Several cosmetic fixups, making next commit easier to read
No notable functional changes, mostly de-File::Spec-ing spots that do not need
it ( '/' works on Win32 just fine, and VMS is a looooong way off )
Peter Rabbitson [Mon, 15 Feb 2016 11:40:34 +0000]
Stop loading Time::HiRes in the base test schema - there is no need
Switch all spots to a select()-based sleep instead
Peter Rabbitson [Sun, 14 Feb 2016 10:39:14 +0000]
Untangle strictly-DBICTest constant from the main constant set
Not sure what I was thinking when I wrote this
Peter Rabbitson [Wed, 17 Feb 2016 10:01:20 +0000]
Move tmpdir() to DBICTest::Util where it belongs
This detangles things even more. Add some extra logic fixes to the hideous
routine while we are at it...
Some notes on the actual test pefrormed: there have been cases on smokers
where a returned directory was not in fact writable [1]. Thus work harder
making sure everything works. The check is expensive but not terribly so:
about 14ms on cold caches ( echo 3 > /proc/sys/vm/drop_caches ) and ~6ms
thereafter. This adds up to 2 seconds over the current 320 tests. Timed via:
~$ perl -It/lib -Ilib -MANFANG -MDBICTest::Util=tmpdir -MTime::HiRes=time -e '
my $t0 = time;
sub delta_t { my $t = time; printf "%.06f\n", $t - $t0; $t0 = $t }
delta_t();
print tmpdir . "\n";
delta_t();
print tmpdir . "\n";
delta_t();
print tmpdir . "\n";
delta_t();
'
[1] http://www.cpantesters.org/cpan/report/
36d4436d-7888-1014-a278-e5322b825c07
Peter Rabbitson [Mon, 15 Feb 2016 11:42:13 +0000]
Revert
ab340f7f - it no longer makes sense given the excellent CI setup
There should be no functional changes / difference in behavior (the config
option is named differently, and is inverted in meaning)
Verified no change in behavior (at least on CI) via:
( not checking all 20+ jobs as the log-counter jumps towards the end )
for n in $(seq 18) ; do
x=$((
112787688 + $n)) && \
y=$((
112787738 + $n)) && \
echo "$x => $y" && \
diff -U0 \
<(wget -qO- https://s3.amazonaws.com/archive.travis-ci.org/jobs/$x/log.txt | \
perl -0777 -n -E 'say ( ($_ =~ /List of loadable modules within both the core and(.+?)List of loadable modules within both the core and/s )[0] )') \
<(wget -qO- https://s3.amazonaws.com/archive.travis-ci.org/jobs/$y/log.txt | \
perl -0777 -n -E 'say ( ($_ =~ /List of loadable modules within both the core and(.+?)List of loadable modules within both the core and/s )[0] )')
done | less
This also happened to find https://rt.cpan.org/Ticket/Display.html?id=112601
Peter Rabbitson [Mon, 29 Feb 2016 10:35:26 +0000]
Institute a central "load this first in testing" package
Instead of the hodge-podge of "what loads first where" make a verified focal
package and move some of the stuff within DBICTest::RunMode there
There are no other changes aside from the load order
Peter Rabbitson [Sun, 28 Feb 2016 12:37:46 +0000]
Move find_co_root into DBICTest::Util
This is the first step of rearranging the utility pieces, removing reliance
on Path::Class in general
No visible functional changes, the old sub _find_co_root left as-is for the
time being, with an eval wrapped around it to retain the old "best effort"
behavior. Will be revisited in subsequent commits.
Peter Rabbitson [Sun, 28 Feb 2016 13:04:08 +0000]
Revert part of
bbcc1fe8 - the 'queue unstick hack' belongs in DBICTest
DBICTest::Util is more likely to be loaded before Test::More, voiding the
check in the BEGIN. DBICTest on the other hand is almost invariably loaded
after T::M.
Peter Rabbitson [Mon, 29 Feb 2016 11:50:54 +0000]
(optdep) last-from-block is a compile-time warning, silence properly
Without this we do get warnings under RELEASE_TESTING=1 as warnings are then
enabled file-wide
Peter Rabbitson [Fri, 26 Feb 2016 08:57:27 +0000]
Switch the main dev branch back to 'master'
Previously the idea was to have two dev branches - one for "the crowd", and
another one for the rel manager to do periodic squashes, merges, cleanups etc.
This worked rather well for about 1.5 years, but with the primary architect
outgoing it can't be sustained, and only serves to confuse everyone.
Thus a fast forward with a mini-merge of master up to the tip of current/blead
and continuing pushes to master alone from there on. Not yet deleting the old
'current/blead' and 'current/for_cpan_index' branches, as it affects PR states
due to useless "smarts" in the github logic.
Peter Rabbitson [Sat, 13 Feb 2016 20:38:31 +0000]
(travis) Display TAP directives on single threaded CI runs
Add a couple extra single-thread runs, shouldn't take *that* much longer
Peter Rabbitson [Thu, 18 Feb 2016 04:46:00 +0000]
(travis) Fix INC-poison thinko from
6d74b82cc
Ensure stable DBIC is in fact in INC by test time ( detected courtesy of the
@INC-state reporter in t/00describe_environment.t \o/ )
Peter Rabbitson [Thu, 18 Feb 2016 04:14:29 +0000]
(travis) Revert version.pm workaround
dd94f6ef
Peter Rabbitson [Sat, 13 Feb 2016 17:27:11 +0000]
Eeeeep /x doesn't affect the insides of [...]
gregor herrmann [Sat, 13 Feb 2016 18:56:13 +0000]
Apply debian downstream spelling patch
481e21bf
Peter Rabbitson [Sat, 13 Feb 2016 20:01:48 +0000]
Adjust Changes to reflect what was shipped in 0.082821
Peter Rabbitson [Thu, 11 Feb 2016 17:07:51 +0000]
Add experimental meta flags signifying the status of parallel testing
Peter Rabbitson [Thu, 11 Feb 2016 17:52:40 +0000]
Add explicit patronage listing (should have done this a while ago)
Not generalizing it (yet) as patrons are few and far between
Dagfinn Ilmari Mannsåker [Mon, 8 Feb 2016 16:31:22 +0000]
Proper fix for the lazy workaround in
7e1774f7
Pure-perl subs return values as mortal copies on the stack, incrementing
the reference count until the next statement. In the case of the last
statement in a sub, that is in the caller, after the other lexicals have
been GCed.
if ( ... ) { ... };
counts as a single statement for this purpose, since it compiles to
( ... ) && do { ... };
The reason this doesn't bite when using XS is that Class::XSAcessor
returns the SV directly from the hash, rather than a mortal copy, so the
reference count never gets incremented.
Generalize the fix to a similar problem (
8e9b9ce5) and pepper potentially
problematic codepaths with explicit NEXTSTATEs. Many of the changes do not
resolve anything as there is no "statement leakage" in most of this code,
but it is a good idea to have them there nevertheless: This way future
code-flow modifications will not accidentally reintroduce this problem.
Peter Rabbitson [Thu, 4 Feb 2016 09:30:30 +0000]
Silence more spurious warnings (this one is a serious wtf)
Seen in no-XS CI (e.g https://travis-ci.org/dbsrgits/dbix-class/jobs/
106811389)
on all perls and too involved to diagnose properly given the tight schedule
Just go for a cop out
Peter Rabbitson [Thu, 4 Feb 2016 09:18:51 +0000]
Do our best to disconnect on request (goes with
45792de6)
This ensures that a failed rollback won't leave is in a weird state
Peter Rabbitson [Thu, 4 Feb 2016 08:54:13 +0000]
Remove statement cache eviction before disconnect
This was added for no apparent reason with a ton of other code in
f200d74b.
It is known to have unintended effects on at least ::Pg handles (as detailed
in theory/dbix-connector/issues/39) and generally seems like a gratuitous
action to take.
Given it doesn't seem to add extra noise on any of the test runs - kill it
with fire.
Peter Rabbitson [Thu, 4 Feb 2016 09:16:40 +0000]
Streamline couple code paths/texts, no func changes (goes with
7cb35852)
Peter Rabbitson [Wed, 3 Feb 2016 00:32:00 +0000]
Protect DBIC as best we can from the failure mode in
7cb35852
The main idea is that while exception_action works just like $SIG{__DIE__},
this is less than ideal as non-sufficiently-careful software can completely
abort a callstack by goto()-ing out of it (not to mention the annoyance of
users when receiving callbacks on exceptions that DBIC later handles).
So this changeset makes exception_action() behave *better* than $SIG{__DIE__}
by meticlously annotating every DBIC-internal recoverable-exception site and
ensuring that exception_action (and any $SIG{__DIE__} callback) is not
invoked in this case ( see the diff of t/61findnot.t specifically )
This is a rather heavy and involved set of changes, but there seems to be no
other way to go around this. There were complaints already due to firing o
handlers on recoverable errors, but this is the first time the integrity of
the actul DBIC code flow was broken. Thus an executive decision was made to
solve this for good (took about 2 full days of work, sigh...)
The main part of this changset is in ::Schema.pm and ::_Util.pm, the rest is
simply switching from try/eval => dbic_internal_try. Some codepaths can not
be executed due to lack of RDBMS, but afaict it all works.
The changes were audited by a combination of:
watch -x grep -rnP --exclude='*.pod' '^(?!\s*\#).*?(\beval\b|\btry\b)' lib
git diff HEAD^ \
| perl -0777 -e 'my $str = <>; while( $str =~ /(?:\A|^index)(.+?)(?:^diff|\z)/gsm) { my $substr = $1; warn $substr if ( $substr =~ /dbic_internal_try/ and $substr !~ /DBIx::Class::_Util/ ) }' 2>&1 \
| less
And a BaseSchema.pm exception_action hook which registers failures on any
invocation which is not paired with an eval/thows_ok/etc in a t/**.t frame.
In other words we make sure when exception_action is invoked - a test is there
waiting for the resulting exception, assuming any other exception is transient
( needs DBICTEST_ASSERT_NO_SPURIOUS_EXCEPTION_ACTION to be set ).
Additionally there is a global CI-enabled Try::Tiny::try override which fails
on calls from within the DBIx::Class namespace.
Peter Rabbitson [Tue, 15 Dec 2015 22:26:07 +0000]
Cleaner assertion envvar handling
No functional changes, aside from making few envvars always set on CI
Peter Rabbitson [Wed, 3 Feb 2016 18:39:56 +0000]
Fix test failure with DBD::mysql < 4.023 introduced in
729656c5
Peter Rabbitson [Tue, 2 Feb 2016 10:23:04 +0000]
Detect and very loudly warn about Return::Multilevel in exception_action()
Peter Rabbitson [Wed, 3 Feb 2016 00:30:36 +0000]
Remove gratuituous use of eval
Peter Rabbitson [Sat, 24 Jan 2015 15:16:14 +0000]
Remove last remaining accesses to ->VERSION in lib
Beef up and streamline (with caching) the ::_Util mod version checks
Read under -w
Peter Rabbitson [Mon, 19 Jan 2015 14:00:42 +0000]
Streamline BYTEA (binary) Pg optdeps using the new augmentation system
Read under -w
Peter Rabbitson [Sat, 9 May 2015 12:20:28 +0000]
Remove Config::Any from the core dep set
Originally introduced by
b6cd6478, the dep is used *very* rarely. Relegate
it to optdep state instead, thus removing a Module::Pluggable entry from the
depchain (evicted from core in 5.20)
Peter Rabbitson [Tue, 2 Feb 2016 18:16:20 +0000]
Remove dead code commented out since 2006 (
953a18ef )
The todo test it refers to are either the ones deleted in
8452e496 OR the ones
still there in t/relationship/core.t:
git log -S'relationship checking needs fixing'
Peter Rabbitson [Wed, 27 Jan 2016 12:35:55 +0000]
Ensure the $storage state reflects the current connection state closely
Add several extra calls to ->disconnect, ensuring that oddball events do not
leave things in an undefined state. Even more rather hideous testcases, looks
like that problem has been nailed now. Several remain, see next commits :(
Peter Rabbitson [Wed, 27 Jan 2016 11:27:25 +0000]
Another overhaul (hopefully one of the last ones) of the rollback handling
This subsystem has seen several passes (most notably
90d7422fc), all of them
utterly misguided and of rather terrible quality :( Lay groundwork for a saner
system by consolidating the "rollback after exception, with potential rewrite"
mechanism. There should be no notably changes in behavior (aside from several
transaction texts), for that see next commit.
Contains a rather hideous piece of code propagated over several years. Not
tackling that yet, as too many things are in motion.
Read under -w
Peter Rabbitson [Wed, 27 Jan 2016 17:12:00 +0000]
Remove useless try{} and rename some variables in ::TxnScopeGuard
No functional changes, read under --color-words
Peter Rabbitson [Fri, 22 Jan 2016 12:07:49 +0000]
Consolidate various $storage state resets in $storage->disconnect()
Currently no functional changes, but see next commits
Peter Rabbitson [Fri, 22 Jan 2016 13:14:58 +0000]
Make sure Win32-like DBICTest checks are not tripped by repeated disconnects
Peter Rabbitson [Mon, 14 Dec 2015 11:08:31 +0000]
Even more elaborate txnguard testing, augmenting
6e102c8f
Essentially this ensures the claim in
35cf7d1af (exception codepaths within
DBIC are not affected by a leftover non-cooperative exception object present
in $@) is semi-correct
Read under -w
Peter Rabbitson [Mon, 14 Dec 2015 10:40:21 +0000]
Throw away remnant commented out in
36099e8c
The stuff being tested is too touchy already to try adding extra sugar to the
test. If anything further moving away from Test::* might be in order.
Peter Rabbitson [Sun, 13 Dec 2015 16:25:38 +0000]
Relax overly aggressive exception-well-formedness checks from
84e4e006
Given that the actual exception codepaths within DBIC are not affected by
a leftover non-cooperative exception object present in $@, it is rather
counterproductive to warn out the PSA in these cases
Peter Rabbitson [Mon, 14 Dec 2015 09:18:17 +0000]
Microoptimize various "is this string empty" checks
Checking the truthiness of the separately tracked string length is vastly
faster than doing actual string comparison
Working set identified via: grep -nPr "\b(ne|eq)\b\s*(\"\"|''|q{}|q())" lib
Peter Rabbitson [Tue, 14 Feb 2012 22:13:30 +0000]
Remove all uses of Scope::Guard from the tests, use our own version
A deferred constraints rework several commits later will remove all remaining
uses from lib/ and as such we will lose the dep entirely
Peter Rabbitson [Tue, 19 Jan 2016 21:08:10 +0000]
Add the repository-specific git config include (git >= 1.7.10)
!!! NOTE - potential security RISK !!!
You *MUST*
- check the file is legit:
git diff
7eb1f0e165a4 maint/git_config_dbic.inc
- copy the file to your .git directory:
cp maint/git_config_dbic.inc .git/
- and include it:
git config --add include.path git_config_dbic.inc
**NEVER** include the file directly from the repository itself, e.g.
[include]
path = ../maint/git_config_dbic.inc
!!! NOTE - potential security RISK !!!
Adds extra maint-specific repositories, and defines two gitk shortcuts:
`git vis` - showing all current heads/stashes of interest in progress
`git prvis` - showing all unattended to github PRs
Dagfinn Ilmari Mannsåker [Thu, 8 Jan 2015 12:00:34 +0000]
(travis) Add DB2 to the CI lineup
Not testing on legacy infrastructure (3G Ram) for the time being
Peter Rabbitson [Fri, 8 Jan 2016 18:19:38 +0000]
(travis) Instead of polluting the log on failure, just be loud on OOM alone
Printing the entire VM state has not been useful for the 2 years it's been in
place, so just retire it altogether
Peter Rabbitson [Fri, 23 Jan 2015 06:50:50 +0000]
(travis) Install extra deps for the t/52leaks.t persistency tests
These are not part of OptDeps as the stuff on CPAN is hopelessly outdated.
But if we leverage the excellent patchsets prepared by the debian-perl group
we can get very very far indeed.
Peter Rabbitson [Tue, 19 Jan 2016 20:45:32 +0000]
Audit/simplify various ->is_* runmode specs
Peter Rabbitson [Thu, 7 Jan 2016 17:37:28 +0000]
Revert sloppy workaround in
dabde0bc5, addressed by prev. commit
Tighten up the Firebird setup, add an explicit travis-brewed 5.10 smoke and
add extra randomness to the testing order in t/750firebird.t
Tested to bits with:
--- a/maint/travis-ci_scripts/40_script.bash
+++ b/maint/travis-ci_scripts/40_script.bash
@@ -28,15 +28,17 @@ if [[ "$CLEANTEST" = "true" ]] ; then
run_or_err "Prepare blib" "make pure_all"
run_harness_tests
else
- PROVECMD="prove -lrswj$VCPU_USE xt t"
+ PROVECMD="prove -lrswj$VCPU_USE t/750firebird.t"
# FIXME - temporary, until Package::Stash is fixed
if perl -M5.010 -e 1 &>/dev/null ; then
PROVECMD="$PROVECMD -T"
fi
+ for f in $(seq 200) ; do
echo_err "$(tstamp) running tests with \`$PROVECMD\`"
$PROVECMD 2> >(tee "$TEST_STDERR_LOG")
+ done
fi
TEST_T1=$SECONDS
Results at: https://travis-ci.org/ribasushi/dbix-class/builds/
100894293
Peter Rabbitson [Thu, 7 Jan 2016 17:26:02 +0000]
The complete fix for intermittent t/750firebird.t failures (RT#110979)
It makes no sense to throw values away in case the finish() failed - they are
good regardless. Not sure what I was thinking at the time :(
See also next commit
Peter Rabbitson [Sat, 20 Jun 2015 13:51:57 +0000]
(deplist) Make it clear which non-existent yet known directories are in @INC
Also add explicit xt/ entries (not that I've seen this in the wild)
Peter Rabbitson [Thu, 7 Jan 2016 15:55:46 +0000]
(travis) Make sure we really test everything when using cpanm (devrels)
This is to work around https://github.com/miyagawa/cpanminus/issues/462
Note: even if cpanm itself gets fixed, it will take forever for changes to
trickle down to various travis builds (currently 4 different configurations)
Peter Rabbitson [Thu, 7 Jan 2016 15:35:06 +0000]
(travis) Work around RT#110882
Peter Rabbitson [Wed, 16 Dec 2015 21:32:47 +0000]
(travis) Adjust test infrastructure for recent extensive TravisCI changes
I mean who does that?!?!
https://docs.travis-ci.com/user/ci-environment/#Virtualization-environments
This is an initial pass to get things moving again, one more overhaul needs to
take place based on
7f6d73eb. For now just make sure we run under both sudo
and non-sudo, and be explicit which platform are we running on.
Read diff under -w
Peter Rabbitson [Tue, 1 Dec 2015 22:43:39 +0000]
(travis) Fix version check on non-module-named dists (lapse from
a223f7584)
Peter Rabbitson [Tue, 1 Dec 2015 22:04:44 +0000]
(travis) Work around RT#107392
Vadim Pushtaev [Fri, 13 Nov 2015 09:19:11 +0000]
Fix POD typo
Zoffix Znet [Mon, 9 Nov 2015 02:40:18 +0000]
Fix typo
Peter Rabbitson [Wed, 4 Nov 2015 04:02:04 +0000]
Move the rows/offset sanity checks from DBI to _resolved_attrs
Doing this much earlier should tie all loose ends wrt rows => 0 (sigh...)
Peter Rabbitson [Wed, 4 Nov 2015 03:42:17 +0000]
Replace \D with [^0-9] in sensitive spots
Peter Rabbitson [Tue, 3 Nov 2015 17:35:03 +0000]
(travis) Do not run the git authorship check within a github PR
Before running the CI test github "helpfully" generates a merge-commit,
which uses the email as listed in the github profile, NOT using the
email/name as seen on the merged commit itself. This can cause the entire
thing to fail for no apparent reason
Since any PR is scrutinized and tested to bits after the fact - skipping
the test is safe
Read under -w
Peter Rabbitson [Tue, 3 Nov 2015 14:32:08 +0000]
Really make sure xt/ tests run on non-plain installs (fix
c26b30de)
FACEDESK: Module::Install::Makefile::tests_recursive() takes a single arg and
throws the rest away... I mean what the flying...
Also remove some of the "is this plain user" checks from within xt/
Read under -w
Peter Rabbitson [Tue, 3 Nov 2015 13:35:35 +0000]
Adjust view-dependency tests to work on newer libsqlite
The test and mechanism behind it is largely useless in these cases, but old
sqlite installations will lurk around for ever, so keep the check while moving
it to xt/
Peter Rabbitson [Tue, 3 Nov 2015 12:23:52 +0000]
Fix spurious ROLLBACK statements when a TxnScopeGuard fails a deferred commit
This is a *temporary workaround*, and I am really unhappy about it... it just
feels wrong. See the comment in lib/DBIx/Class/Storage/TxnScopeGuard.pm
Peter Rabbitson [Wed, 20 May 2015 13:25:06 +0000]
Fix oversight in
096ab902 breaking { -value => $array } insertion
This was never tested for, but also never shipped
Peter Rabbitson [Tue, 3 Nov 2015 10:47:34 +0000]
Stop requiring explicit bindtype specification for non-scalar references
As ilmari correctly pointed out this is not necessary, I am not sure why I
didn't catch this on review...
<ilmari> ribasushi: why does DBIC think every DBD needs speical attrs to bind non-scalar values?
<ilmari> DBD::Pg handles binding arrayrefs autmoatically
<ribasushi> ilmari: at the time this was written DBD::Pg *did not* auto-infer bindtype for arrays, that's a relatively new thing
<ribasushi> ilmari: hmmm... this does not seem to be the case, will dig deeper...
Peter Rabbitson [Sun, 1 Nov 2015 12:08:12 +0000]
Fix failures and protect the suite from spurious VERSION-related warnings
A new SQL::Translator devrel missed a s/_// line and made several tests fail
Fix t/752sqlite.t and t/icdt/offline_pg.t, and also add an obnoxious CI mode
to ensure we will not fall prey to this again
Peter Rabbitson [Mon, 2 Nov 2015 22:50:17 +0000]
Fix bizarre segfault on older perls, not seen on CI ( augments
d63c9e64 )
Peter Rabbitson [Tue, 3 Nov 2015 08:53:56 +0000]
Fix test failure on 5.8.x with DBIC_TRACE=1 (introduced by
68b8ba54)
The CI run did not smokje this particular combination
TLDR: like ... qr/.../m does not work on 5.8.x due to P5#3038
Peter Rabbitson [Sun, 1 Nov 2015 11:29:11 +0000]
Skip spurious compiler-related error with old DBD::SQLite and new gcc
Peter Rabbitson [Mon, 2 Nov 2015 21:05:04 +0000]
FINALLY find and fix the elusive parallel test deadlock
For more details see https://rt.cpan.org/Ticket/Display.html?id=108390
Peter Rabbitson [Mon, 2 Nov 2015 20:56:45 +0000]
Fix fail with DBICTEST_DEBUG_CONCURRENCY_LOCKS set (thinko in
69016f65)
Peter Rabbitson [Fri, 9 Oct 2015 10:04:45 +0000]
Stop using bare $] throughout - protects the codebase from floating point hell
Issues similar, but likely not limited to, P5#72210 ( see prev commit)
Peter Rabbitson [Fri, 9 Oct 2015 09:48:45 +0000]
(travis) One more addition to the smoke-devrel family: 5.8.8 with long-doubles
This one to catch fallout of https://rt.perl.org/Ticket/Display.html?id=72210
Peter Rabbitson [Fri, 9 Oct 2015 12:21:46 +0000]
(travis) Now that File:Path is fixed, test the distbuild deps under devrel
This is not strictly necessary for anything I do, just add even more smoke
coverage to some pieces of the ecosystem (at the expense of extra 5 minutes,
but given it's in the "fail-ok" blocks - meh)
Peter Rabbitson [Thu, 8 Oct 2015 07:40:25 +0000]
Add comprehensive concurrent-test-locking logging to aid future debugging
Peter Rabbitson [Tue, 6 Oct 2015 13:54:55 +0000]
(travis) Minimize MySQL config further - even less chance of OOMs
Although in reality it is the preceeding commits that make the real difference
Peter Rabbitson [Thu, 8 Oct 2015 23:01:34 +0000]
(travis) Stop using the ramdisk for MySQL/Pg data
Given the very low amount of RAM, the travis setup DOES NOT HELP. Instead of
fishing out the changed configs, just symlink the dirs back where they belong
Peter Rabbitson [Thu, 8 Oct 2015 07:30:06 +0000]
(travis) When running under CI make t/storage/quote_names.t respect locking
Without this too many connections are fired at the MySQL and tasty OOMs occur
Peter Rabbitson [Wed, 7 Oct 2015 11:39:46 +0000]
Reduce amount of initial connects during non-SQLite test-RDBMS lock-grabs
I am not sure why I wrote things this way back in
8d6b1478d, perhaps I didn't
properly think through that sqlt_type will be correctly determined no matter
what. As a result any MySQL test would connect at least once, and under the
right circumstances consume enough per-connection-thread memory to get a
low-RAM system (like TravisCI) to start OOM-killing things indiscriminately.
Peter Rabbitson [Thu, 8 Oct 2015 19:18:49 +0000]
Switch several caller() invocations to explicit CORE::caller()
This not only fixes an obscure test failure due to an older Sub::Uplevel
(it would be too obnoxious to bump the dep just for the test case), but also
makes the entire codebase more robust in light of possible rogue/incomplete
caller() overrides
This was not a simple s/// job - each change was manually evaluated before
carrying out
Also while at it - fix the utterly annoying *UNKNOWN* eception site-marker:
it does not add any information and only confuses things. The heuristics in
Carp::Skip is supposed to be much much clearer, need to finish its tests...
Peter Rabbitson [Thu, 15 Oct 2015 15:32:34 +0000]
Clarify comments/documentation regarding DBIC/SQLA/DQ relationship
This discussion comes up several times per year, just put it to bed for good
Peter Rabbitson [Mon, 28 Sep 2015 15:58:07 +0000]
Even more aggressive streamline of SQL scanning in _resolve_aliastypes
No longer try to match individual pieces at all, simply treat every single
fragment as a single string. While rather barbaric, we are doing it anyway
in order to catch fragments, thus it makes no sense to keep the "proper"
codepath at all.
This concludes the shenanigans in this function
Peter Rabbitson [Mon, 28 Sep 2015 10:55:01 +0000]
Save one _resolve_aliastypes in the case of a subqueried prefetch
Instead reuse a previously calculated one, since the code flow allows it
There *seem* to be no functional changes, but one never knows...
Peter Rabbitson [Tue, 22 Sep 2015 02:11:27 +0000]
Instead of assembling many small regexes scan all the SQL in one pass
Speeds up the analyzer massively, now it's mostly SQLA itself holding things
back... sigh
Peter Rabbitson [Mon, 28 Sep 2015 13:34:12 +0000]
A little more golfing - this time ::DBIHacks::_resolve_column_info
More surprising stuff showing up on the profiles...
Peter Rabbitson [Tue, 22 Sep 2015 01:48:42 +0000]
Scanning strings piecemeal makes no sense - join them up
Read under -w
Peter Rabbitson [Tue, 22 Sep 2015 00:31:17 +0000]
Another rewrap in ::DBIHacks::_resolve_aliastypes_from_select_args
No functional changes at all, just more efficient loops
Read under -w
Peter Rabbitson [Mon, 21 Sep 2015 23:35:29 +0000]
Simplify DBIHacks order_by scan generator
There is no need to call out all the way to _extract_order_criteria -
we can do the necessary mangling ourselves