Previous Up Next
Globule > Documentation

6   Troubleshooting

This section handles a number of trouble shooting issues, which can cause problems with a correct functioning of Globule and instructions on how to overcome obstables in some cases.

6.1  Compatibility with other Apache modules and settings

In general, Globule is well-behaved and follows the Apache interface. However, some modules or configurations can clash. Most incompatibilities with other modules and settings emerge because the same environment as the origin server cannot be emulated on the replica host. This section surveys a number of them.

6.1.1  Modules that won't work

The usage of the following modules will not work when the modules are active on the web-site being replicates. This means that the modules can be used within the same server that runs Globule, just not on a web-site that is Globule replicated:

mod_var
 
Also known as type maps. Since this module can be compiled in, you might want to make sure the module simply isn't active. Type maps are made active with the line:
AddHandler type-map var
Type maps cannot be supported by Globule, because replica servers cannot determine beforehand which alternatives are available in the type map.
mod_rewrite
 
URLs rewriting is unsafe, and can the rewriting cannot interact well with redirection at this moment for the

6.1.2  Constructions that won't work

The following Directives and constructions will not operate well with Globule.

Usage of ``DirectorySlash Off''
 
By default, the Apache configuration has set the DirectorySlash option to true, turning it off will break DNS redirection to URLs inadvertently not ending with a slash, but which actually is a directory index.

6.2  System resource usage

In Linux, if Apache/Globule crashes, it sometimes does not deallocate the semaphores used for process synchronization. Restarting the server may then fail because it cannot allocate sufficient semaphores. You can cleanup all semaphores using:

ipcrm `ipcs -s | awk '(int($2)>0){print"-s",$2}'`

Use with care, especially when running as root as this will release all semaphores, also ones still in use by other programs (X windows amongst others).

6.2.1   Allow high quantities of shared memory in your operating system

Your operating system must be configured to support the amount of shared memory specified in directive GlobuleMemSize. You can check and set this as follows:

Linux:

  1. Multiply the values returned by the following two commands:
    cat /proc/sys/kernel/shmmax
    cat /proc/sys/kernel/shmmni
    

    Alternatively, if you have Perl installed, you can run:

    echo print `cat /proc/sys/kernel/shmmax` \* `cat /proc/sys/kernel/shmmni` | perl  
    


  2. The result (in bytes) should be larger than the amount you want Globule to allocate. If not, you can adjust them as follows:
    echo 33554432 > /proc/sys/kernel/shmmax
    echo 4096 > /proc/sys/kernel/shmmni
    
    when logged in as root.

Solaris:

  1. Run:
    sysdef -i
    
  2. Multiply the values listed for ``max shared memory segment size (SHMMAX)'' and ``shared memory identifiers (SHMMNI)''.
  3. The result (in bytes) should be larger than the amount you want Globule to allocate.
  4. If not, you can adjust them by editing /etc/system as root:
    set shmsys:shminfo_shmmax=33554432
    set shmsys:shminfo_shmmni=4096
    set shmsys:shminfo_shmseg=200
    

6.2.2   Allow large numbers of locks in your operating system

Your operating system must be configured to support the number of locks specified in directive GlobuleLockCount. You can check and set this as follows:

Linux:

  1. Run this command:
    ipcs -l
    


  2. Under the heading ``Semaphore Limits'' there is the value ``max number of arrays'', which corresponds to the maximum number of (global) mutexes Globule can allocate.

Solaris:

  1. Run this command:
    sysdef -i
    
  2. Under the heading ``IPC Semaphores'' there is the value ``semaphore identifiers (SEMMNI)'', which corresponds to the maximum number of (global) mutexes Globule can allocate.

globule@globule.org
February 27, 2006

Previous Up Next