[ https://issues.apache.org/jira/browse/HADOOP-8411?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13281349#comment-13281349 ]
Ivan Mitic commented on HADOOP-8411: ------------------------------------ Thanks Daryn, answers inline. I don't think import org.apache.tools.ant.util.FileUtils is needed? @Daryn: Fixed in next patch, thanks File tmpTargetFile = new File(target.getParentFile(), "original.tmp"); will cause collisions if files are concurrently renamed in the same directory. I'd do something more like new File(target+".tmp"). @Daryn: It does not seem it can happen in this context, but it is a good change, so fixed. Is renameAtomicWithOverride intended to handle the issue later commented "Files that are currently in use cannot be deleted on Windows"? If so, won't the delete of the renamed target always fail? @Daryn: Actually not. Renaming into the existing file fails on Windows. In this case, while truncating the log, we are trying the rename the truncated tmp log file into the actual log (which might exist) in which case rename fails. I'm a bit leery of adding windows-specific behavior because those of us not running on windows may unknowingly break it. Would it be possible to commonize the behavior by trying to do the rename, if that fails, try to do the double rename? I'd also tag the renamed target with File#deleteOnExit() just in case an exception happens. @Daryn: In this case, I don't think I can get around with calling rename twice and I have to do this dance with files. Though, your concerns are valid, and are something we are also thinking about. At this point, goal is to make everything run on Windows, and as we move forward we'll see what can/should be improved. @Daryn: It makes sense to add tmpTargetFile.deleteOnExit() if regular delete fails, thanks. Is the windows conditional in TestStorageDirectoryFailure needed? It seems like it should work for all platforms? @Daryn: I don't think it is required. It might make sense to leave it and test this scenario, as on Unix like systems users can go ahead and delete these files (OS is not preventing them from doing so). Have you tested that the ugi username changes in TestWebHdfsUrl won't break non-windows platforms? @Daryn: Yes I have. Also, if you take a look at SecurityUtil.replacePattern { ...fqdn.toLowerCase() ... } you can see where the mismatch comes from. > TestStorageDirecotyFailure, TestTaskLogsTruncater, TestWebHdfsUrl and > TestSecurityUtil fail on Windows > ------------------------------------------------------------------------------------------------------ > > Key: HADOOP-8411 > URL: https://issues.apache.org/jira/browse/HADOOP-8411 > Project: Hadoop Common > Issue Type: Bug > Components: util > Affects Versions: 1.1.0 > Reporter: Ivan Mitic > Assignee: Ivan Mitic > Attachments: HADOOP-8411-branch-1-win.patch, > HADOOP-8411-branch-1-win.patch > > Original Estimate: 48h > Remaining Estimate: 48h > > Jira tracking failures from the summary. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira