Ticket #26 (closed defect: fixed)

Opened 19 months ago

Last modified 15 months ago

Transient failure during upload (closed stream)

Reported by: mahlon Owned by: mgranger
Priority: major Milestone: ThingFish 0.3 - N-Robot
Component: ThingFish Keywords: upload closed stream filestore formupload ioerror
Cc: Depends on:

Description

Unsure yet if this is just the FormUpload? path, or something larger. A resend usually succeeds, making this a little harder to pin down.

[2007-12-20 07:33:28.889547 7016/110520] DEBUG {ThingFish::FilesystemFileStore} -- Opening writer for /tmp/thingfish/e9/a6/7a/c0/e9a67ac0-af10-11dc-b815-0016cba18fb9
[2007-12-20 07:33:28.893554 7016/110520] DEBUG {ThingFish::FilesystemFileStore} --   locked /tmp/thingfish/e9/a6/7a/c0/e9a67ac0-af10-11dc-b815-0016cba18fb9
[2007-12-20 07:33:28.930914 7016/110520] ERROR {ThingFish::FilesystemFileStore} --   IOError during upload: closed stream
[2007-12-20 07:33:28.931682 7016/110520] ERROR {ThingFish::Daemon} -- Error saving resource to filestore: closed stream
[2007-12-20 07:33:28.931967 7016/110520] ERROR {ThingFish::Daemon} -- IOError while running #<ThingFish::FormUploadHandler:0x55a0b4>: closed stream[2007-12-20 07:33:28.932058 7016/110520] DEBUG {ThingFish::Daemon} -- Handlers were:  Mongrel::StatisticsFilter  ThingFish::FormUploadHandler
Backtrace:  (eval):3:in `read'
  ./plugins/thingfish-fsfs/lib/thingfish/filestore/filesystem.rb:199:in `store_io'
  ./plugins/thingfish-fsfs/lib/thingfish/filestore/filesystem.rb:316:in `open_writer'
  /Library/Ruby/Gems/1.8/gems/lockfile-1.4.3/lib/lockfile.rb:284:in `lock'
  /Library/Ruby/Gems/1.8/gems/lockfile-1.4.3/lib/lockfile.rb:539:in `attempt'
  /Library/Ruby/Gems/1.8/gems/lockfile-1.4.3/lib/lockfile.rb:539:in `catch'
  /Library/Ruby/Gems/1.8/gems/lockfile-1.4.3/lib/lockfile.rb:539:in `attempt'
  /Library/Ruby/Gems/1.8/gems/lockfile-1.4.3/lib/lockfile.rb:539:in `loop'
  /Library/Ruby/Gems/1.8/gems/lockfile-1.4.3/lib/lockfile.rb:539:in `attempt'
  /Library/Ruby/Gems/1.8/gems/lockfile-1.4.3/lib/lockfile.rb:210:in `lock'
  /Library/Ruby/Gems/1.8/gems/lockfile-1.4.3/lib/lockfile.rb:199:in `initialize'
  ./plugins/thingfish-fsfs/lib/thingfish/filestore/filesystem.rb:311:in `new'
  ./plugins/thingfish-fsfs/lib/thingfish/filestore/filesystem.rb:311:in `open_writer'
  ./plugins/thingfish-fsfs/lib/thingfish/filestore/filesystem.rb:195:in `store_io'
  ./lib/thingfish/daemon.rb:161:in `store_resource'
  ./plugins/thingfish-formuploadhandler/lib/thingfish/handler/formupload.rb:138:in `handle_post_request'
  ./lib/thingfish/request.rb:277:in `each_body'
  ./lib/thingfish/request.rb:264:in `each'
  ./lib/thingfish/request.rb:264:in `each_body'
  ./plugins/thingfish-formuploadhandler/lib/thingfish/handler/formupload.rb:136:in `handle_post_request'
  ./lib/thingfish/handler.rb:115:in `send'
  ./lib/thingfish/handler.rb:115:in `process'  ./lib/thingfish/daemon.rb:356:in `run_handlers'  ./lib/thingfish/daemon.rb:353:in `each'
  ./lib/thingfish/daemon.rb:353:in `run_handlers'  ./lib/thingfish/daemon.rb:207:in `dispatch_to_handlers'
  ./lib/monkeypatches.rb:118:in `process_client'
  /Library/Ruby/Gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:281:in `run'  /Library/Ruby/Gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:281:in `initialize'
  /Library/Ruby/Gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:281:in `new'
  /Library/Ruby/Gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:281:in `run'  /Library/Ruby/Gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:264:in `initialize'
  /Library/Ruby/Gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:264:in `new'
  /Library/Ruby/Gems/1.8/gems/mongrel-1.1.1/lib/mongrel.rb:264:in `run'
  ./lib/thingfish/daemon.rb:139:in `run'
  bin/thingfishd:89:in `run'
  bin/thingfishd:31:in `main'
  bin/thingfishd:99

Change History

Changed 15 months ago by mgranger

(In [505]) * Fixed the incorrect Mahlons in various files.

  • Added a "naughty" filter as a place to collect various ways lazy or naieve plugins could cause requests to fail.
  • Checkpoint of a bit more progress on the RDF metastore.
  • Fixed up the tf_plugin spec templates with updated boilerplate code.
  • Fixed some broken paths in the manual-generation Rake task. Thanks to Sho Fukamachi for reporting this. Fixes #46.
  • Added missing plugin dependency for the RFC2822 filter to the install_plugin_dependencies task.
  • Rewind bodies explicitly again to work around the fact that duped IOs that are read from still have their underlying FILE* position modified when read from. Refs #26.
  • Added a UUID_URN pattern for matching UUID URNs.

Changed 15 months ago by mahlon

  • status changed from new to closed
  • resolution set to fixed

We don't know with 100% clarity that this is fixed, but we haven't seen in a good long while. There were many changes with how ThingFish handles and passes IO objects around, and there is a good chance this bug was squashed as part of those reorganizations.

If this rears it's ugly head again, we'll reopen this ticket.

Note: See TracTickets for help on using tickets.