Remove Hydra::Helper::nix::txn_do from the Perl code
[?]
Apr 10, 2020, 4:13 PM
CUFVKLLAL54OHDMYUHVJZK46LLX7RJMUJUE5HWYDCGIOQ5TIGXZQCDependencies
- [2]
4FGKYUTNAllow cancelling builds marked as busy - [3]
7OBWA6AZhydra-evaluator: Fix error handling in fetching inputs - [4]
B7KDPCRLPrevent inputs from being garbage collected during evaluation - [5]
B3UW2ZRBRestart jobset evals efficiently - [6]
JQQYF4S3Fix build-queued plugin hook - [7]
6HWIUOSUAvoid fetching Projects/Jobsets just to get the name column - [8]
HHWCS3QQJobs: populate Jobs.jobset_id field when writing from hydra-eval-jobset - [9]
36TOESVE* When marking a build as "keep", register it as a root right away - [10]
7DWCXNC7Use the new Nix Perl bindings - [11]
PDZD5QORhydra-evaluator: handle the case where there is no previous jobset eval - [12]
Q5HZWFCYAdd support for darcs repositories. - [13]
W5OAZWPDDrop the errorMsg column in the Jobs table - [14]
LZO3C2KI* Hack around those SQLite timeouts: just retry the transaction. - [15]
4SFOPTHWUse query_params instead of params - [16]
RJICSUYG* Align the apply/delete buttons. - [17]
RFE6T5LG* Store jobset evaluations in the database explicitly. This includes - [18]
QT4FO2HPrefactored admin controller, using chains, to avoid using requireadmin on each endpoint - [19]
4AKMU4ZBClean up user editing - [20]
V5LIYTVHDarcsInput: Avoid a chdir. - [21]
H7CNGK4O* Log evaluation errors etc. in the DB. - [22]
HEZQ273Simprove the error messages when invalid declarative jobsets are defined - [23]
HPEG2RHVMerge the BuildResultInfo table into the Builds table - [24]
WQXF2T3Dhydra-evaluator: Don't require $HYDRA_CONFIG - [25]
SQATLPINUse git rev-list --count - [26]
JAH3UPWASupport revision control systems via plugins - [27]
5SHCWE7X* Prevent repeated evaluation of a jobset with the same inputs. This - [28]
SS4TZXNUDistinguish between permanent evaluation errors and transient input errors - [29]
VU2OLHD2Move most of AddBuilds to hydra-eval-jobset - [30]
NEWDDAOF* Allow users to change the value of a build's "keep" flag, which - [31]
NI5BVF2V* In job inputs of type "build", allow the project and jobset names of - [32]
KXGOUX7P* Creating releases. - [33]
TJK27WSBOpen the DB using Hydra::Model::DB->new - [34]
H66SHOS7Fix and clean up editing project settings - [35]
WYXO75RJAdd support for fetching URLs as inputs. - [36]
6WRGCITDEnable declarative projects. - [37]
IBW53PUCHipChat notification: add support for Mercurial inputs for determining who might have broken the build. - [38]
ZPHREC7Xhydra-eval-jobset: Support flakes - [39]
6BDFG7DCFix declarative flake builds - [40]
S6OISBQ3* Mark the "current" builds in a jobset, i.e. those corresponding to - [41]
AMFMXR52Provide a command ‘hydra-init’ to initialise/upgrade the database - [42]
LZVO64YGMerge in the first bits of the API work - [43]
UWVMQIAC* Refactoring. - [44]
DDMYFZ5XFix the jobset unchanged check - [45]
J5ITV54PMake restartBuilds faster - [46]
BPT4WJ7URemove Persona support - [47]
BDSD2JLV* Speed up manifest generation. - [48]
PMNWRTGJAdd multiple output support - [49]
MBRAFK6FRegister restarted derivations as GC roots - [50]
SW7STLQ7Cache flake-based jobset evaluations - [51]
K63JYJDHCompose release name for an evaluation if none has been defined - [52]
WVD3YYONhydra-evaluator: Add some debug code - [53]
RXVJFQ5AEvaluator cleanups - [54]
SRCWWMGUDo not use local clone for Bazaar inputs. - [55]
TQVKZQUGUse the REST API in the web interface for editing jobsets - [56]
YWS3TOWAFix restarting builds - [57]
6US6LEC7* Add a NarSize field to Hydra manifests. This allows nix-env - [58]
BOGEJ3H2Additional helpful information in error messages. - [59]
VHV6GI4LAdd a jobset eval action to restart all aborted/cancelled builds - [60]
CCIORPJ5When manually scheduling an eval, force re-instantiation of store derivations - [61]
2T42QGZD* Register builds as GC roots so they don't get deleted. - [62]
UOINKJ2JAdd an action to cancel all builds in a jobset eval - [63]
FPK5LF53* Put the project-related actions in a separate controller. Put the - [64]
S5PV6IIM* Represent jobs explicitly in the DB. - [65]
SGRUPSLKOnly send email notification of evaluation error when the evaluation error has changed. Fixes #121. - [66]
53PW36WShydra-evaluator: When evaluating a single jobset, exit with a failure code if evaluation fails - [67]
SM5M2J3APass inputs to release expressions using -I - [68]
NS7SND6Rhydra-evaluator: Send statistics to statsd - [69]
GEADFVZ5hydra-queue-runner: Improved scheduling - [70]
NLJJZVHO* Use ->update({...}) properly. - [71]
OR5SJ42YShow releases in a tab on the project page - [72]
ZQS3ZNA3Fix broken redirect when editing a release - [73]
DAPOSS44Use the REST API in the web interface for editing projects - [74]
RBNQKATL* Adding persistant releases. A release is a named set of builds. - [75]
T273UOB7Support obtaining the contents of an evaluation as a channel - [76]
3BTJRSU3GitInput.pm: Don't do a chdir to the Git clone - [77]
LSZLZHJYAllow users to edit their own settings - [78]
MQMF2LBWRe-enable adding new users via the web interface - [79]
I6QMKSISMove getBaseUrl - [80]
IN272KZW* Automatically keep all builds in the latest successful release in - [81]
GPHLV42M* Allow the description of a release member to be edited, and to - [82]
3PNG7NIBRemove trailing whitespace - [83]
JY7BXXOPSplit viewing and editing a project - [84]
WJBYXFCKDoh - [85]
XJRJ4J7MAdd user registration - [86]
AWMM5OGVUse delete instead of delete_all - [87]
PCKLFRT5Support push notification of repository changes - [88]
KQZQI2WNAllow creating a release from an evaluation - [89]
4NTIBJ74Implement DELETE for jobsets and use it in the web interface - [90]
XHOZT4WTAdd a command `hydra-create-user' for managing user accounts - [91]
6KJXJB7Nqualify ordery_by clauses when necessary, remove unnecessary order_by's, reported by Ludo, resulted in errors in sqlite - [92]
ZWCTAZGLadded newsitems, added some admin options to clear various caches. - [93]
L54KA7IMhandleDeclarativeJobsetBuild: handle errors from readNixFile - [94]
AFTXA575* $HYDRA_DATA environment variable. - [*]
BKOIYITRadded some json responses - [*]
LBNVQXUB* Build the /build stuff in a separate controller. - [*]
3HZY24CX* Make jobsets viewable under - [*]
U4TD3AIQAdd support for viewing jobset evaluations - [*]
OOQ2D3KC* Refactoring: move fetchInput out of hydra_scheduler into a separate - [*]
2GK5DOU7* Downloading closures. - [*]
N22GPKYT* Put info about logs / build products in the DB.
Change contents
- replacement in src/lib/Hydra/Controller/API.pm at line 217
txn_do($c->model('DB')->schema, sub {$c->model('DB')->schema->txn_do(sub { - replacement in src/lib/Hydra/Controller/Admin.pm at line 93
txn_do($c->model('DB')->schema, sub {$c->model('DB')->schema->txn_do(sub { - replacement in src/lib/Hydra/Controller/Build.pm at line 529
txn_do($c->model('DB')->schema, sub {$c->model('DB')->schema->txn_do(sub { - replacement in src/lib/Hydra/Controller/Jobset.pm at line 65
txn_do($c->model('DB')->schema, sub {$c->model('DB')->schema->txn_do(sub { - replacement in src/lib/Hydra/Controller/Jobset.pm at line 77
txn_do($c->model('DB')->schema, sub {$c->model('DB')->schema->txn_do(sub { - replacement in src/lib/Hydra/Controller/Jobset.pm at line 103
txn_do($c->model('DB')->schema, sub {$c->model('DB')->schema->txn_do(sub { - replacement in src/lib/Hydra/Controller/JobsetEval.pm at line 149
txn_do($c->model('DB')->schema, sub {$c->model('DB')->schema->txn_do(sub { - replacement in src/lib/Hydra/Controller/Project.pm at line 44
txn_do($c->model('DB')->schema, sub {$c->model('DB')->schema->txn_do(sub { - replacement in src/lib/Hydra/Controller/Project.pm at line 58
txn_do($c->model('DB')->schema, sub {$c->model('DB')->schema->txn_do(sub { - replacement in src/lib/Hydra/Controller/Project.pm at line 80
txn_do($c->model('DB')->schema, sub {$c->model('DB')->schema->txn_do(sub { - replacement in src/lib/Hydra/Controller/Project.pm at line 201
txn_do($c->model('DB')->schema, sub {$c->model('DB')->schema->txn_do(sub { - replacement in src/lib/Hydra/Controller/Release.pm at line 66
txn_do($c->model('DB')->schema, sub {$c->model('DB')->schema->txn_do(sub { - replacement in src/lib/Hydra/Controller/Release.pm at line 72
txn_do($c->model('DB')->schema, sub {$c->model('DB')->schema->txn_do(sub { - replacement in src/lib/Hydra/Controller/User.pm at line 166
txn_do($c->model('DB')->schema, sub {$c->model('DB')->schema->txn_do(sub { - replacement in src/lib/Hydra/Controller/User.pm at line 264
txn_do($c->model('DB')->schema, sub {$c->model('Db')->schema->txn_do(sub { - replacement in src/lib/Hydra/Helper/AddBuilds.pm at line 49
txn_do($db, sub {$db->txn_do(sub { - replacement in src/lib/Hydra/Helper/AddBuilds.pm at line 82
txn_do($db, sub {$db->txn_do(sub { - replacement in src/lib/Hydra/Helper/Nix.pm at line 17
getHydraHome getHydraConfig getBaseUrl txn_dogetHydraHome getHydraConfig getBaseUrl - edit in src/lib/Hydra/Helper/Nix.pm at line 61[9.287]→[9.287:291](∅→∅),[9.291]→[9.588:781](∅→∅),[9.53]→[9.588:781](∅→∅),[9.781]→[9.1099:1112](∅→∅),[9.1112]→[9.781:812](∅→∅),[9.781]→[9.781:812](∅→∅),[9.812]→[9.1113:1155](∅→∅),[9.1155]→[9.847:858](∅→∅),[9.847]→[9.847:858](∅→∅),[9.858]→[9.1156:1184](∅→∅),[9.1184]→[9.879:935](∅→∅),[9.879]→[9.879:935](∅→∅)
}# Awful hack to handle timeouts in SQLite: just retry the transaction.# DBD::SQLite *has* a 30 second retry window, but apparently it# doesn't work.sub txn_do {my ($db, $coderef) = @_;my $res;while (1) {eval {$res = $db->txn_do($coderef);};return $res if !$@;die $@ unless $@ =~ "database is locked";} - replacement in src/lib/Hydra/Helper/Nix.pm at line 433
return txn_do($db, sub {return $db->txn_do(sub { - replacement in src/lib/Hydra/Helper/Nix.pm at line 460
txn_do($db, sub {$db->txn_do(sub { - replacement in src/lib/Hydra/Plugin/BazaarInput.pm at line 61
txn_do($self->{db}, sub {$self->{db}->txn_do(sub { - replacement in src/lib/Hydra/Plugin/DarcsInput.pm at line 80
txn_do($self->{db}, sub {$self->{db}->txn_do(sub { - replacement in src/lib/Hydra/Plugin/GitInput.pm at line 221
txn_do($self->{db}, sub {$self->{db}->txn_do(sub { - replacement in src/lib/Hydra/Plugin/MercurialInput.pm at line 88
txn_do($self->{db}, sub {$self->{db}->txn_do(sub { - replacement in src/lib/Hydra/Plugin/PathInput.pm at line 57
txn_do($self->{db}, sub {$self->{db}->txn_do(sub { - replacement in src/lib/Hydra/Plugin/PathInput.pm at line 68
txn_do($self->{db}, sub {$self->{db}->txn_do(sub { - replacement in src/lib/Hydra/Plugin/SubversionInput.pm at line 74
txn_do($self->{db}, sub {$self->{db}->txn_do(sub { - replacement in src/script/hydra-create-user at line 57
txn_do($db, sub {$db->txn_do(sub { - replacement in src/script/hydra-eval-jobset at line 402
txn_do($db, sub {$db->txn_do(sub { - replacement in src/script/hydra-eval-jobset at line 504
txn_do($db, sub {$db->txn_do(sub { - replacement in src/script/hydra-eval-jobset at line 606
txn_do($db, sub {$db->txn_do(sub { - replacement in src/script/hydra-eval-jobset at line 622
txn_do($db, sub {$db->txn_do(sub { - replacement in src/script/hydra-eval-jobset at line 663
txn_do($db, sub {$db->txn_do(sub { - replacement in src/script/hydra-eval-jobset at line 809[3.269]→[9.1624:1650](∅→∅),[9.1300]→[9.1624:1650](∅→∅),[9.2998]→[9.1624:1650](∅→∅),[9.2355]→[9.1624:1650](∅→∅)
txn_do($db, sub {$db->txn_do(sub {