[Mongrel] Win32 service - Errno::EINVAL (Invalid argument) when uploading image file

Luis Lavena luislavena at gmail.com
Thu Apr 26 02:20:47 EDT 2007


On 4/26/07, Herryanto Siatono <herryanto at gmail.com> wrote:
> Hi guys,
>
> I'm facing an error trying to run my app as mongrel_service, hope those who
> have faced similar issue can help to shed some lights.
>
> The app was fine when running from console, but when running it as a
> service, it failed when I try to upload 'image file', it has no issue
> uploading other types of files.
>
> Environment:
> ------------
> mongrel (1.0.1, 0.3.13.3)
> mongrel_service (0.3.1)
> rmagick (1.13.0)
> ruby (1.8.5)
> rails (1.2.3)
> Tested on Windows XP and Windows 2003 server
>
> Error Message:
> --------------
> Errno::EINVAL (Invalid argument):
>     e:/ruby/lib/ruby/1.8/base64.rb:114:in `write'
>     e:/ruby/lib/ruby/1.8/base64.rb:114:in `print'
>     e:/ruby/lib/ruby/1.8/base64.rb:114:in `b64encode'
>     e:/ruby/lib/ruby/1.8/base64.rb:113:in `scan'
>     e:/ruby/lib/ruby/1.8/base64.rb:113:in `b64encode'
>     /app/models/asset.rb:110:in `with_image'
>     /app/models/asset.rb:100:in `crop_image_size'
>     /vendor/rails/activerecord/lib/active_record/callbacks.rb:337:in `send'
>     /vendor/rails/activerecord/lib/active_record/callbacks.rb:337:in
> `callback'
>     /vendor/rails/activerecord/lib/active_record/callbacks.rb:334:in `each'
>     /vendor/rails/activerecord/lib/active_record/callbacks.rb:334:in
> `callback'
>     /vendor/rails/activerecord/lib/active_record/callbacks.rb:242:in
> `create_or_update'
>     /vendor/rails/activerecord/lib/active_record/base.rb:1617:in
> `save_without_validation'
>     /vendor/rails/activerecord/lib/active_record/validations.rb:810:in
> `save_without_transactions'
>     /vendor/rails/activerecord/lib/active_record/transactions.rb:105:in
> `save'
>     ....
>
>
> /vendor/rails/activerecord/lib/active_record/connection_adapters/abstract/da
> tabase_statements.rb:59:in `transaction'
>     /vendor/rails/activerecord/lib/active_record/query_cache.rb:66:in `send'
> Parameters:
>
> {"project_id"=>"1",
>  "commit"=>"Upload file",
>  "attachment"=>{"0"=>{"private"=>"0",
>  "category_id"=>"",
>  "description"=>"",
>  "file"=>#<File:C:/WINDOWS/TEMP/CGI.5020.0>}}}
>

What plugin are you using to manage attachments?

Also, is Ruby bin directory (e:/ruby/bin) in your path?

> Service command:
> ----------------
> "e:/ruby/bin/mongrel_service.exe" single -e production -p 4000 -a 0.0.0.0 -l
> "log/mongrel.log" -P "log/mongrel.pid" -c "D:/rubywork/[appname]" -t 0 -r
> "public" -n 1024
>
> Not sure if it was access right issue as service runs as System account, but
> I tried running the service in the console yet I'm getting the same error
> message
>

You get the same temporary file location? current user should store
temps into C:\Documents and Settings\[username]\Local Settings\Temp

Trying to write to C:\Windows\Temp could raise a LUA bug (Limited User Account).

Also, since you mention RMagick, are binaries (dlls) of ImageMagick in the path?

> Service console command:
> -----------------------
> > mongrel console single -e production -p 4000 -l -c "D:/rubywork/[appname]"
>
>
> No error message shown on the console, log/mongrel.log file was not there as
> well.
>

Blame me for that, current version lacks logging. We are cooking the
replacement which solve that issue.

After running mongrel_service console, the log/production.log file
shows the same error you listed before, right?

What are your privileges as user in the computers you're testing?
Normal (Power User), restrictred (User) or administrator?

-- 
Luis Lavena
Multimedia systems
-
Leaders are made, they are not born. They are made by hard effort,
which is the price which all of us must pay to achieve any goal that
is worthwhile.
Vince Lombardi


More information about the Mongrel-users mailing list