Hi,
I'm trying to use soap4r and webrick to create a network file
repository, someplace I can stick files and retrieve them by md5 sum
later. However, webrick seems to not like passing files greater than
20k or so, or at least, it definitely fails on files around 600k and
succeeds on files around 20k.
As far as I can tell, what happens is that the file successfully
transfers (I see it on the remote end), but then the process just hangs
until I kill it, at which point it says this:
I, [2005-07-01T11:16:54.536146 #22417] INFO -- FileBucket::BucketServer: going to shutdown ...
F
Finished in 435.310691 seconds.
1) Failure:
test_networkedclient(TestBucket)
[tc_bucket.rb:135:in `test_networkedclient'
tc_bucket.rb:118:in `each'
tc_bucket.rb:118:in `test_networkedclient']:
Exception raised:
Class: <Timeout::Error>
Message: <"execution expired">
---Backtrace---
/usr/lib/ruby/1.8/timeout.rb:43:in `<<'
/usr/lib/ruby/1.8/http-access2/http.rb:316:in `dump'
/usr/lib/ruby/1.8/http-access2/http.rb:377:in `dump'
/usr/lib/ruby/1.8/http-access2.rb:1116:in `query'
/usr/lib/ruby/1.8/http-access2.rb:1114:in `timeout'
/usr/lib/ruby/1.8/timeout.rb:62:in `timeout'
/usr/lib/ruby/1.8/http-access2.rb:1114:in `query'
/usr/lib/ruby/1.8/http-access2.rb:833:in `query'
/usr/lib/ruby/1.8/http-access2.rb:383:in `do_get_block'
/usr/lib/ruby/1.8/http-access2.rb:327:in `conn_request'
/usr/lib/ruby/1.8/http-access2.rb:259:in `request'
/usr/lib/ruby/1.8/http-access2.rb:238:in `post'
/usr/lib/ruby/1.8/soap/streamHandler.rb:251:in `send_post'
/usr/lib/ruby/1.8/soap/streamHandler.rb:103:in `send'
/usr/lib/ruby/1.8/soap/rpc/proxy.rb:114:in `invoke'
/usr/lib/ruby/1.8/soap/rpc/proxy.rb:131:in `call'
/usr/lib/ruby/1.8/soap/rpc/driver.rb:275:in `call'
/usr/lib/ruby/1.8/soap/rpc/driver.rb:302:in `addfile'
/usr/lib/ruby/1.8/soap/rpc/driver.rb:297:in `addfile'
../../lib/puppet/filebucket.rb:216:in `backup'
tc_bucket.rb:137:in `test_networkedclient'
tc_bucket.rb:135:in `assert_nothing_raised'
tc_bucket.rb:135:in `test_networkedclient'
tc_bucket.rb:118:in `each'
tc_bucket.rb:118:in `test_networkedclient'
---------------
2 tests, 35 assertions, 1 failures, 0 errors
I, [2005-07-01T11:16:54.576429 #22417] INFO -- FileBucket::BucketServer: End of FileBucket::BucketServer. (status: -1)
E, [2005-07-01T11:16:54.578255 #22417] ERROR -- FileBucket::BucketServer: HTTPRequest#fixup: WEBrick::HTTPStatus::LengthRequired occured.
I've tried looking up the LengthRequired exception, but it doesn't seem
to occur in a context that I can understand.
Is there some flag I have to send to webrick to get it to gracefully
handle large files? Or might this be a problem with soap4r somehow?
I'm most confused by the fact that the file is being transferred by the
transfer process is never returning. I've even verified the checksum of
the file and it's definitely entirely transferred.
Thanks in advance,
Luke
--
There are three kinds of death in this world. There's heart death,
there's brain death, and there's being off the network. -- Guy Almes
---------------------------------------------------------------------
Luke Kanies | http://reductivelabs.com | http://config.sage.org