- March 24, 2007
- 12,073
- 7,459
- Home Country
- Germany
- Moderator
- #1
Hi,
I found this major issue when I tested MP2 on another PC than my own:
First issue: the importer worker will run in an endless loop with my bad zip file that is attached here, probably it is somehow invalid?
When I tried to reproduce the folder structure in a new zip file this issue does not occure:
The most obvious issue is, that in failing case the last "/" is missing
fails: mathias.zip > /mathias' (11 more resources pending)
works: mathias.zip > /mathias/' (12 more resources pending)
2nd issue:
The ZipResourceAcessor leaves the files opened, so you can't delete them while the server is running.
The issue is the "Proxy.IncCounter" is call in CTOR of ZipResourceAccessor, and this is called in:
which is called in ResourcePath:
.
Thats why in my test the counter quickly increased to 50, but got only once decreased.
I found this major issue when I tested MP2 on another PC than my own:
First issue: the importer worker will run in an endless loop with my bad zip file that is attached here, probably it is somehow invalid?
Code:
[2012-01-26 18:14:42,694] [27007 ] [Importer ] [INFO ] - ImporterWorker: Importing 'D:\Coding\MP\MP2\Reflexion\mathias.zip > /mathias' (11 more resources pending)
[2012-01-26 18:14:42,721] [27034 ] [Importer ] [INFO ] - ImporterWorker: Importing 'D:\Coding\MP\MP2\Reflexion\mathias.zip > /mathias' (11 more resources pending)
[2012-01-26 18:14:42,746] [27059 ] [Importer ] [INFO ] - ImporterWorker: Importing 'D:\Coding\MP\MP2\Reflexion\mathias.zip > /mathias' (11 more resources pending)
[2012-01-26 18:14:42,772] [27085 ] [Importer ] [INFO ] - ImporterWorker: Importing 'D:\Coding\MP\MP2\Reflexion\mathias.zip > /mathias' (11 more resources pending)
[2012-01-26 18:14:42,818] [27131 ] [Importer ] [INFO ] - ImporterWorker: Importing 'D:\Coding\MP\MP2\Reflexion\mathias.zip > /mathias' (11 more resources pending)
[2012-01-26 18:14:42,844] [27157 ] [Importer ] [INFO ] - ImporterWorker: Importing 'D:\Coding\MP\MP2\Reflexion\mathias.zip > /mathias' (11 more resources pending)
[2012-01-26 18:14:42,870] [27183 ] [Importer ] [INFO ] - ImporterWorker: Importing 'D:\Coding\MP\MP2\Reflexion\mathias.zip > /mathias' (11 more resources pending)
[2012-01-26 18:14:42,896] [27209 ] [Importer ] [INFO ] - ImporterWorker: Importing 'D:\Coding\MP\MP2\Reflexion\mathias.zip > /mathias' (11 more resources pending)
[2012-01-26 18:14:42,922] [27235 ] [Importer ] [INFO ] - ImporterWorker: Importing 'D:\Coding\MP\MP2\Reflexion\mathias.zip > /mathias' (11 more resources pending)
[2012-01-26 18:14:42,947] [27260 ] [Importer ] [INFO ] - ImporterWorker: Importing 'D:\Coding\MP\MP2\Reflexion\mathias.zip > /mathias' (11 more resources pending)
When I tried to reproduce the folder structure in a new zip file this issue does not occure:
Code:
[2012-01-26 18:10:56,249] [154473 ] [Importer ] [INFO ] - ImporterWorker: Importing 'D:\Coding\MP\MP2\Reflexion\'
[2012-01-26 18:10:56,333] [154557 ] [Importer ] [INFO ] - ImporterWorker: Importing 'D:\Coding\MP\MP2\Reflexion\mathias.zip > /' (12 more resources pending)
[2012-01-26 18:10:56,382] [154606 ] [Importer ] [INFO ] - ImporterWorker: Importing 'D:\Coding\MP\MP2\Reflexion\mathias.zip > /mathias/' (12 more resources pending)
[2012-01-26 18:10:56,430] [154654 ] [Importer ] [INFO ] - ImporterWorker: Importing 'D:\Coding\MP\MP2\Reflexion\mathias.zip > /mathias/Symbole_Test/' (12 more resources pending)
The most obvious issue is, that in failing case the last "/" is missing
fails: mathias.zip > /mathias' (11 more resources pending)
works: mathias.zip > /mathias/' (12 more resources pending)
2nd issue:
The ZipResourceAcessor leaves the files opened, so you can't delete them while the server is running.
The issue is the "Proxy.IncCounter" is call in CTOR of ZipResourceAccessor, and this is called in:
Code:
public IResourceAccessor Clone()
{
return new ZipResourceAccessor(_zipProvider, _zipProxy, _pathToDirOrFile);
}
Code:
public IResourceAccessor CreateLocalResourceAccessor()
{
IResourceAccessor resourceAccessor;
if (TryGetFromCache(this, out resourceAccessor))
return resourceAccessor.Clone();
Thats why in my test the counter quickly increased to 50, but got only once decreased.