Vinutha Nayak created JRUBY-6315:
------------------------------------

             Summary: Removing dead symlinks fails with jruby on ppc64 platform
                 Key: JRUBY-6315
                 URL: https://jira.codehaus.org/browse/JRUBY-6315
             Project: JRuby
          Issue Type: Bug
            Reporter: Vinutha Nayak
            Assignee: Thomas E Enebo


Failing testcase :  test_file.rb  ( part of testcase  shipped with ruby 1.7.0 
source ) . I have simplified it to contain only the failing part.

{noformat} 

require 'test/unit'

class TestMethodSymlink < Test::Unit::TestCase

def test_require_symlink
      # Create a ruby file that sets a global variable to its view of __FILE__
      f = File.open("real_file.rb", "w")
      f.write("$test_require_symlink_filename=__FILE__")
      f.close()
      system("ln -s real_file.rb linked_file.rb")
      assert(File.symlink?("linked_file.rb"))
      # JRUBY-5167 - Test that symlinks don't effect __FILE__ during load or 
require
      # Note: This bug only manifests for absolute paths that point to symlinks.
      abs_path = File.join(Dir.pwd, "real_file.rb")
      require abs_path
      assert_equal($test_require_symlink_filename, abs_path)
      abs_path_linked = File.join(Dir.pwd, "linked_file.rb")
      require abs_path_linked
      assert_equal($test_require_symlink_filename, abs_path_linked)
      load abs_path_linked
      assert_equal($test_require_symlink_filename, abs_path_linked)
    ensure
      File.delete("real_file.rb")
      File.delete("linked_file.rb")
    end
end

{noformat} 

When running with Java 7 we get the following error :

{noformat}

E
Finished in 0.311 seconds.

  1) Error:
test_require_symlink(TestMethodSymlink):
Errno::ENOENT: No such file or directory - linked_file.rb
    org/jruby/RubyFile.java:1793:in `unlink'
    ./test_symlink.rb:24:in `test_require_symlink'
    org/jruby/RubyKernel.java:1944:in `send'
    org/jruby/RubyArray.java:1603:in `each'
    org/jruby/RubyArray.java:1603:in `each'

1 tests, 4 assertions, 0 failures, 1 errors

{noformat}

Basically here the issue is that Jruby is not able to recognise the dead 
symlinks. 

Seems like it is failing at the following part of ruby code :

{noformat}

 boolean isSymlink = RubyFileTest.symlink_p(recv, filename).isTrue();
            // Broken symlinks considered by exists() as non-existing,
            // so we need to check for symlinks explicitly.
            if (!lToDelete.exists() && !isSymlink) {
                throw runtime.newErrnoENOENTError(filename.getUnicodeValue());  
  <----- exception is thrown here
            }

{noformat}


the symlink_p() should be returning *false* in the current scenario on ppc64 
bit machine . 

Could you please check on this ? I have tested with 
build@http://ci.jruby.org/snapshots/master and I see the same failure with it 
too .Failure is seen both with java6 and java7 latest builds.





--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to