rbbt-util 5.21.39 → 5.21.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 97680be71c7f39a7c72f307cf0fa154ef8fbb524
4
- data.tar.gz: 50b7802d5af30c133c85092bef090eff33ae44bd
3
+ metadata.gz: d7e3095c61e3d45f4d025495616012edd657e844
4
+ data.tar.gz: f009065701ca1bb5fc077352d950a41c1448fd6f
5
5
  SHA512:
6
- metadata.gz: 41a0673225580d3bb28ab960edcdf85a5a5564ddf044ff7445e3267cf3697a7af0d0d2b0b4b10214a489f8fdf16d2055e35bf4ef17dd644744af9c857ba41716
7
- data.tar.gz: 9b5211a011ac1fc4bf7c338a372781d41e2471679802cad0e4ca4047a7a498344922a088ad957bb606c867e8ba1f625587beea688ddc0bbfa211a907ca052107
6
+ metadata.gz: b6761bc6d733ef4f82e18069314df062512f53ef0f8aefdea400a6cfe63dc64939feb0570d77ff1ad1dd1edb92273024b2c240348bf11c16352b29a87953b383
7
+ data.tar.gz: c2e35aea73309e61fcd0d20df6e8d88b7412f7e7d513b99199e8bd9fbcb8b73d8a406d966f5505f6d52b458df5c02e697e57b3f1c717a810ba899dfe56ffe44e
@@ -21,6 +21,12 @@ class RbbtProcessQueue
21
21
  @stop = true
22
22
  }
23
23
 
24
+ @abort = false
25
+ Signal.trap(:USR2){
26
+ @abort = true
27
+ }
28
+
29
+
24
30
  loop do
25
31
  p = @queue.pop
26
32
  next if p.nil?
@@ -34,6 +40,7 @@ class RbbtProcessQueue
34
40
  raise $!
35
41
  end
36
42
  raise Respawn if @stop
43
+ raise Aborted if @abort
37
44
  end
38
45
  Kernel.exit! 0
39
46
  rescue Respawn
@@ -103,7 +110,6 @@ class RbbtProcessQueue
103
110
  rescue Aborted, Interrupt
104
111
  Log.warn "Worker #{Process.pid} aborted"
105
112
  Kernel.exit! 0
106
- Process.kill "INT", @current
107
113
  rescue Exception
108
114
  Log.exception $!
109
115
  raise $!
@@ -148,13 +154,16 @@ class RbbtProcessQueue
148
154
 
149
155
  def join
150
156
  Process.waitpid @pid
151
- raise ProcessFailed unless $?.success?
157
+ raise ProcessFailed if not $?.success?
152
158
  end
153
159
 
154
160
  def abort
155
161
  begin
162
+ Process.kill :USR2, @pid
156
163
  Process.kill :INT, @pid
157
- rescue
164
+ rescue Errno::ESRCH
165
+ rescue Exception
166
+ Log.exception $!
158
167
  end
159
168
  end
160
169
 
@@ -339,7 +339,7 @@ class Step
339
339
  return false unless error?
340
340
  begin
341
341
  klass = Kernel.const_get(info[:exception][:class])
342
- not RbbtException === klass
342
+ not (RbbtException == klass or RbbtException === klass)
343
343
  rescue Exception
344
344
  false
345
345
  end
@@ -350,7 +350,7 @@ class Step
350
350
  end
351
351
 
352
352
  def dirty?
353
- rec_dependencies.collect{|dependency| dependency.path }.uniq.reject{|path| not Path === path or path.exists?}.any?
353
+ rec_dependencies.collect{|dependency| dependency.path unless dependency.error? and not dependency.recoverable_error? }.compact.uniq.reject{|path| not Path === path or path.exists?}.any?
354
354
  end
355
355
 
356
356
  def done?
@@ -366,6 +366,8 @@ class Step
366
366
  pid = info[:pid]
367
367
  return nil if pid.nil?
368
368
 
369
+ return false if done? or error? or aborted? or not started?
370
+
369
371
  if Misc.pid_exists?(pid)
370
372
  pid
371
373
  else
@@ -199,8 +199,12 @@ class Step
199
199
  begin
200
200
  step.produce
201
201
  rescue Exception
202
- step.abort
203
- raise $!
202
+ step.exception $!
203
+ if step.recoverable_error?
204
+ raise $!
205
+ else
206
+ raise StopInsist.new($!)
207
+ end
204
208
  end
205
209
  end
206
210
  nil
@@ -221,7 +225,12 @@ class Step
221
225
  raise $!
222
226
  rescue Exception
223
227
  dep.exception $!
224
- raise StopInsist.new($!)
228
+ dep.exception $!
229
+ if dep.recoverable_error?
230
+ raise $!
231
+ else
232
+ raise StopInsist.new($!)
233
+ end
225
234
  end
226
235
  end
227
236
  nil
@@ -54,7 +54,12 @@ class Step
54
54
  def _exec
55
55
  resolve_input_steps
56
56
  @exec = true if @exec.nil?
57
- @task.exec_in((bindings ? bindings : self), *@inputs)
57
+ begin
58
+ old = Signal.trap("INT"){ Thread.current.raise Aborted }
59
+ @task.exec_in((bindings ? bindings : self), *@inputs)
60
+ ensure
61
+ Signal.trap("INT", old)
62
+ end
58
63
  end
59
64
 
60
65
  def exec(no_load=false)
@@ -119,6 +124,7 @@ class Step
119
124
  rescue Exception
120
125
  FileUtils.rm pid_file if File.exist?(pid_file)
121
126
  stop_dependencies
127
+ Log.exception $!
122
128
  raise $!
123
129
  end
124
130
 
@@ -237,6 +243,8 @@ class Step
237
243
  exception $!
238
244
  stop_dependencies
239
245
  raise $!
246
+ ensure
247
+ set_info :pid, nil
240
248
  end
241
249
  end
242
250
 
@@ -248,11 +256,16 @@ class Step
248
256
  if force or aborted? or recoverable_error?
249
257
  clean
250
258
  else
251
- raise "Error in job: #{status} - #{self.path}"
259
+ e = get_exception
260
+ if e
261
+ raise e
262
+ else
263
+ raise "Error in job: #{self.path}"
264
+ end
252
265
  end
253
266
  end
254
267
 
255
- clean if dirty? or (not running? and not done?)
268
+ clean if dirty?
256
269
 
257
270
  if dofork
258
271
  fork(true) unless started?
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbbt-util
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.21.39
4
+ version: 5.21.42
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-04 00:00:00.000000000 Z
11
+ date: 2016-10-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -487,82 +487,82 @@ signing_key:
487
487
  specification_version: 4
488
488
  summary: Utilities for the Ruby Bioinformatics Toolkit (rbbt)
489
489
  test_files:
490
- - test/test_helper.rb
490
+ - test/rbbt/test_workflow.rb
491
491
  - test/rbbt/resource/test_path.rb
492
- - test/rbbt/association/test_item.rb
493
- - test/rbbt/association/test_database.rb
494
- - test/rbbt/association/test_open.rb
495
- - test/rbbt/association/test_index.rb
496
- - test/rbbt/association/test_util.rb
497
- - test/rbbt/util/test_concurrency.rb
498
- - test/rbbt/util/test_log.rb
499
- - test/rbbt/util/test_chain_methods.rb
500
- - test/rbbt/util/test_simpleopt.rb
501
- - test/rbbt/util/simpleopt/test_parse.rb
502
- - test/rbbt/util/simpleopt/test_get.rb
503
- - test/rbbt/util/simpleopt/test_setup.rb
504
492
  - test/rbbt/util/test_cmd.rb
505
- - test/rbbt/util/test_semaphore.rb
506
- - test/rbbt/util/concurrency/test_threads.rb
507
- - test/rbbt/util/concurrency/processes/test_socket.rb
508
- - test/rbbt/util/concurrency/test_processes.rb
509
- - test/rbbt/util/test_tmpfile.rb
510
- - test/rbbt/util/test_open.rb
511
- - test/rbbt/util/test_filecache.rb
512
- - test/rbbt/util/R/test_eval.rb
513
- - test/rbbt/util/R/test_model.rb
493
+ - test/rbbt/util/simpleopt/test_setup.rb
494
+ - test/rbbt/util/simpleopt/test_get.rb
495
+ - test/rbbt/util/simpleopt/test_parse.rb
496
+ - test/rbbt/util/test_chain_methods.rb
514
497
  - test/rbbt/util/test_simpleDSL.rb
515
- - test/rbbt/util/log/test_progress.rb
516
- - test/rbbt/util/test_colorize.rb
517
- - test/rbbt/util/test_R.rb
498
+ - test/rbbt/util/test_log.rb
499
+ - test/rbbt/util/test_open.rb
518
500
  - test/rbbt/util/misc/test_lock.rb
519
- - test/rbbt/util/misc/test_pipes.rb
501
+ - test/rbbt/util/misc/test_multipart_payload.rb
520
502
  - test/rbbt/util/misc/test_bgzf.rb
503
+ - test/rbbt/util/misc/test_pipes.rb
521
504
  - test/rbbt/util/misc/test_omics.rb
522
- - test/rbbt/util/misc/test_multipart_payload.rb
505
+ - test/rbbt/util/test_concurrency.rb
506
+ - test/rbbt/util/test_R.rb
507
+ - test/rbbt/util/log/test_progress.rb
508
+ - test/rbbt/util/test_colorize.rb
509
+ - test/rbbt/util/test_simpleopt.rb
523
510
  - test/rbbt/util/test_excel2tsv.rb
511
+ - test/rbbt/util/test_filecache.rb
512
+ - test/rbbt/util/concurrency/test_processes.rb
513
+ - test/rbbt/util/concurrency/test_threads.rb
514
+ - test/rbbt/util/concurrency/processes/test_socket.rb
515
+ - test/rbbt/util/test_semaphore.rb
524
516
  - test/rbbt/util/test_misc.rb
517
+ - test/rbbt/util/test_tmpfile.rb
518
+ - test/rbbt/util/R/test_model.rb
519
+ - test/rbbt/util/R/test_eval.rb
520
+ - test/rbbt/test_packed_index.rb
521
+ - test/rbbt/entity/test_identifiers.rb
522
+ - test/rbbt/test_association.rb
523
+ - test/rbbt/knowledge_base/test_traverse.rb
524
+ - test/rbbt/knowledge_base/test_registry.rb
525
+ - test/rbbt/knowledge_base/test_entity.rb
526
+ - test/rbbt/knowledge_base/test_enrichment.rb
527
+ - test/rbbt/knowledge_base/test_syndicate.rb
528
+ - test/rbbt/knowledge_base/test_query.rb
529
+ - test/rbbt/test_resource.rb
525
530
  - test/rbbt/test_entity.rb
531
+ - test/rbbt/test_knowledge_base.rb
532
+ - test/rbbt/annotations/test_util.rb
533
+ - test/rbbt/association/test_index.rb
534
+ - test/rbbt/association/test_item.rb
535
+ - test/rbbt/association/test_open.rb
536
+ - test/rbbt/association/test_util.rb
537
+ - test/rbbt/association/test_database.rb
538
+ - test/rbbt/test_tsv.rb
526
539
  - test/rbbt/workflow/step/test_dependencies.rb
527
- - test/rbbt/workflow/test_doc.rb
528
- - test/rbbt/workflow/test_step.rb
529
540
  - test/rbbt/workflow/test_task.rb
530
- - test/rbbt/test_association.rb
531
- - test/rbbt/test_knowledge_base.rb
532
- - test/rbbt/tsv/parallel/test_traverse.rb
533
- - test/rbbt/tsv/parallel/test_through.rb
541
+ - test/rbbt/workflow/test_step.rb
542
+ - test/rbbt/workflow/test_doc.rb
543
+ - test/rbbt/test_monitor.rb
544
+ - test/rbbt/test_persist.rb
545
+ - test/rbbt/test_annotations.rb
546
+ - test/rbbt/persist/test_tsv.rb
547
+ - test/rbbt/persist/tsv/test_lmdb.rb
548
+ - test/rbbt/persist/tsv/test_kyotocabinet.rb
549
+ - test/rbbt/persist/tsv/test_sharder.rb
550
+ - test/rbbt/persist/tsv/test_cdb.rb
551
+ - test/rbbt/persist/tsv/test_tokyocabinet.rb
552
+ - test/rbbt/persist/tsv/test_leveldb.rb
553
+ - test/rbbt/tsv/test_field_index.rb
534
554
  - test/rbbt/tsv/test_parallel.rb
535
- - test/rbbt/tsv/test_accessor.rb
555
+ - test/rbbt/tsv/test_index.rb
556
+ - test/rbbt/tsv/test_matrix.rb
536
557
  - test/rbbt/tsv/test_change_id.rb
558
+ - test/rbbt/tsv/test_parser.rb
537
559
  - test/rbbt/tsv/test_stream.rb
560
+ - test/rbbt/tsv/test_util.rb
561
+ - test/rbbt/tsv/test_accessor.rb
538
562
  - test/rbbt/tsv/test_filter.rb
539
- - test/rbbt/tsv/test_matrix.rb
540
563
  - test/rbbt/tsv/test_attach.rb
541
564
  - test/rbbt/tsv/test_manipulate.rb
542
- - test/rbbt/tsv/test_field_index.rb
543
- - test/rbbt/tsv/test_index.rb
544
- - test/rbbt/tsv/test_util.rb
545
- - test/rbbt/tsv/test_parser.rb
546
- - test/rbbt/test_packed_index.rb
547
- - test/rbbt/test_persist.rb
565
+ - test/rbbt/tsv/parallel/test_through.rb
566
+ - test/rbbt/tsv/parallel/test_traverse.rb
548
567
  - test/rbbt/test_fix_width_table.rb
549
- - test/rbbt/knowledge_base/test_traverse.rb
550
- - test/rbbt/knowledge_base/test_entity.rb
551
- - test/rbbt/knowledge_base/test_query.rb
552
- - test/rbbt/knowledge_base/test_enrichment.rb
553
- - test/rbbt/knowledge_base/test_syndicate.rb
554
- - test/rbbt/knowledge_base/test_registry.rb
555
- - test/rbbt/entity/test_identifiers.rb
556
- - test/rbbt/test_monitor.rb
557
- - test/rbbt/test_workflow.rb
558
- - test/rbbt/test_annotations.rb
559
- - test/rbbt/annotations/test_util.rb
560
- - test/rbbt/test_resource.rb
561
- - test/rbbt/persist/tsv/test_tokyocabinet.rb
562
- - test/rbbt/persist/tsv/test_kyotocabinet.rb
563
- - test/rbbt/persist/tsv/test_lmdb.rb
564
- - test/rbbt/persist/tsv/test_leveldb.rb
565
- - test/rbbt/persist/tsv/test_cdb.rb
566
- - test/rbbt/persist/tsv/test_sharder.rb
567
- - test/rbbt/persist/test_tsv.rb
568
- - test/rbbt/test_tsv.rb
568
+ - test/test_helper.rb