Page tree

Using Junctions (symlink) to use the data directory at another place

Problem

If the "data" directory is moved with using a junction, this can result in:
PHP Fatal error: Uncaught exception 'Zend_Cache_Exception' with message 'cache_dir "C:\htdocs\translate5\application/../data/cache" must be a directory'

Solution

In Order to use translate5 again, reconfigure the cache directory to the real absolute path of the cache dir in the installation.ini, for example:

resources.cachemanager.zfExtended.backend.options.cache_dir = "C:/htdocs/translate5/data/cache"

See also TRANSLATE-1193 - Getting issue details... STATUS

Apache ThreadStackSize to low. Consequence: Silent crash of task import containing TBX files

Problem

Under windows - with the translate5 default XAMPP installation - it can happen that a task import with TBX data crashes silently. The task remains in status import, the import worker remains on running, no other worker (Term Stat etc) were created yet.
No message in the php.log.
In the apache log appears:

[Mon Jul 24 16:22:48.954674 2017] [mpm_winnt:notice] [pid 6264:tid 580] AH00428: Parent: child process 8060 exited with status 3221225725 – Restarting.

In the Windows log there is an application error:

Name der fehlerhaften Anwendung: httpd.exe, Version: 2.4.23.0, Zeitstempel: 0x577e1b96
Name des fehlerhaften Moduls: php5ts.dll, Version: 5.6.24.0, Zeitstempel: 0x579053a1
Ausnahmecode: 0xc00000fd
Fehleroffset: 0x0011f652
ID des fehlerhaften Prozesses: 0x590
Startzeit der fehlerhaften Anwendung: 0x01d304708d9c96b7
Pfad der fehlerhaften Anwendung: C:\xampp\apache\bin\httpd.exe
Pfad des fehlerhaften Moduls: C:\xampp\php\php5ts.dll
Berichtskennung: ae111efe-10c6-47ba-ac94-e0803b9796ac
Vollständiger Name des fehlerhaften Pakets:
Anwendungs-ID, die relativ zum fehlerhaften Paket ist:

The reason is a to small sized ThreadStackSize as described here.

Solution:

Increase the ThreadStackSize in the httpd.conf. In XAMPP this is usually in "C:\xampp\apache\conf\extra\httpd-mpm.conf"
Add/Change the ThreadStackSize to 8MB in the mpm_winnt_module section:

<IfModule mpm_winnt_module>
ThreadStackSize 8388608
</IfModule>

Large import files lead to PHP fatal error "Out of Memory"

Under windows - with the translate5 default XAMPP installation - PHP can crash with "Out of Memory" messages on huge imports.

Warning: "Out of Memory" is not "Allowed Memory Size of XXX Bytes Exhausted"!
The "Out of Memory" message has nothing to do with the configured memory_limit. If the memory_limit is reached this would be the second error message "Allowed Memory ...". In the case of "Out of memory" the process can not reserve more memory due "outer" limits. This can be OS dependent, or whatever.

A common problem is a to high ThreadsPerChild configuration. The combination of used memory, ThreadsPerChild and ThreadStackSize is somehow limited under Windows.

To get the application (or a specific Import) running again, you should play around with the above mentioned settings.

<IfModule mpm_winnt_module>
    ThreadStackSize 8388608
    ThreadsPerChild        150  # ← try to decrease this value slightly on "Out of Memory" errors under windows.
    MaxConnectionsPerChild   0
</IfModule>
  • No labels