| Bug #3998 | two temporary files created at the root directory of the disk containing the da | ||
|---|---|---|---|
| Submitted: | 4 Jun 2004 10:55 | Modified: | 11 Aug 2004 11:45 | 
| Reporter: | Thierry Supplisson | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Installing | Severity: | S3 (Non-critical) | 
| Version: | 4.0.20a | OS: | Windows (Windows XP SP1) | 
| Assigned to: | Heikki Tuuri | CPU Architecture: | Any | 
   [4 Jun 2004 10:55]
   Thierry Supplisson        
  
 
   [4 Jun 2004 19:37]
   Philip         
  Try what will happen if you run mysql with a user, which has not rights to write to the root directory
   [4 Jun 2004 23:33]
   MySQL Verification Team        
  Notice that both files are delete when the server does the shutdown.
   [9 Jun 2004 21:00]
   Manuel Martin        
  Hi, I just found this report. I have the same behavior here. Additionally, if the account under which the service is running doesn't have the priviledges to write to the drive's root, the service crashes / stops silently (no error in log). This makes the problem a little more critcal, IMO. OS is Windows 2003.
   [16 Jun 2004 18:27]
   Lee         
  yep i get this also running Windows XP Pro + SP1 with admin privileges
   [19 Jun 2004 9:45]
   Dean Goddard        
  Same for Windows 2000 Professional SP 4.
   [26 Jun 2004 20:54]
   Lee         
  yep i get this with the newest release 4.0.20d for windows. I'm running Windows XP SP1 and have admin privileges
   [28 Jun 2004 19:35]
   Victor Vagin        
  Innobase uses tmpfile function twice: innobase/dict/dict0dict.c:645 innobase/lock/lock0lock.c:511 But MSDN says (ms-help://MS.MSDNQTR.2003APR.1033/vclib/html/_crt_tmpfile.htm): ------- The tmpfile function creates a temporary file and returns a pointer to that stream. The temporary file is created in the root directory. To create a temporary file in a directory other than the root, use tmpnam or tempnam in conjunction with fopen. ------- So we'll have to write own implementation for tmpfile.. I'm reassigning the bug to Innobase man..
   [6 Aug 2004 15:15]
   Marko Mäkelä        
  ChangeSet@1.1946 I've submitted a patch that implements tmpfile() differently in Windows, creating the temporary files in the MySQL data directory. In addition, this patch introduces a start-up parameter for disabling the creation of the <datadir>/innodb_status.<pid> file (it will be created as a temporary file instead).
   [11 Aug 2004 11:45]
   Marko Mäkelä        
  Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.
If necessary, you can access the source repository and build the latest
available version, including the bugfix, yourself. More information 
about accessing the source trees is available at
    http://www.mysql.com/doc/en/Installing_source_tree.html
Additional info:
The fix was pushed to the 4.0 tree yesterday and will appear in 4.0.21. InnoDB will use the MySQL function create_temp_file(), which seems to create the files in %TMP% or $TMPDIR in the systems I tested (Windows XP and GNU/Linux).
 