Partial Error 404 when I delete the cache folder

Hello

Matt Marum Angel Magana


Clearing the cache folder to see reflected in my instance Sugar changes, Sugar returns a 404 error in the content of the page and main menu only shows "Name Module" instead of the name that should show, I have to give F5 other time to finish loading

Any idea why not finish loading the cache files and sends me the error?

When I track changes in cache folder, stop in "cache/" folder in ATTRIB class_map.php,  If I press f5 again, the process continues and finish ok.

e.g.

UPDATE:

The error in javascript console is: 

http://{SugarCRM Instance}/rest/v10/metadata?type_filter=currencies%2Cfull_module_list%2Cmodules_info%2Chidden_subpanels%2Cjssource%2Cjssource_public%2Cordered_labels%2Cmodule_tab_map%2Cmodules%2Crelationships%2Cserver_info%2Cconfig%2C_override_values%2Cfilters%2Clogo_url&module_filter=&platform=base 

500 (Internal Server Error)

If I try to call by Postman, the result is correct but when I delete de cache folder, the result is an error 500, php_errors, don't have nothing about the error.

Regards

CZ

Francesca Shiekh

  • Double check your permissions. It sounds like you might have an issue writing or modifying files in the ./cache directory.

  • Sorry but may be in spanish it's better.

    Tengo en config_override.php 

    https://support.sugarcrm.com/Knowledge_Base/Administration/Platform_Management/Setting_Default_File_Permissions_and_Owne… 

    $sugar_config['default_permissions']['user'] = 'apache';
    $sugar_config['default_permissions']['group'] = 'apache';

    Para asegurarme que el usuario este correcto, y en el caso de los permisos, ¿quien se los pone? dado que antes de iniciar el borrado, la carpeta y el contenido está con permisos 777 y cuando termina de reconstruir cambia los permisos

    ¿Cómo funciona la reescritura de la carpeta cache, cómo hace la escritura de dicha carpeta?, ¿habrá que verificar en la configuración de apache o de php o de linux?

  • Apache tienen un parametro que controla el contexto del usuario, definido en httpd.conf via User y Group. La verdad que lo que tienes en config_override.php pocas veces es necesario. Yo lo quitaria y verificara lo definido en httpd.conf.

    Asumiendo que el usario/grupo en httpd.conf coincide con los permisos/dueños de los archivos, no debe existir problema con la lectura o modificacion de los archivos. Por ultimo, asegura que los permisos los aplicaste en manera recursiva.

  • Ya los quité de config_override.php, verificado usuario/grupo en httpd.conf estan apache correctamente.

    chmod 777 -R cache/ 

    Y sigue en la misma posición se para a la mitad y le doy f5 de nuevo y ahora si termina de mostrar todo.

  • Mi panacea para los problemas de permisos es este:

     

    sudo chown -R  apache:apache *

    sudo find . -type d -exec chmod 775 {} \;

    sudo find . -type f -exec chmod 664 {} \;

     

    Si lo ejecutas desde root de sugar todos los archivos están 664 y todos los directorios 775. 

     

    También puedes comprobar los permisos en config.php para dir_mode y file_mode

     

      'default_permissions' =>

      array (

        'dir_mode' => 1528,

        'file_mode' => 432,

        'user' => 'apache',

        'group' => 'apache',

      ),

     

    perdona mi español,

    Francesca

  • Gracias Francesca Shiekh

    CC: Angel Magana

    Ya le aplique tu panacea y sigue con el mismo error.

    Creo que el problema puede estar en el class_map.php cuando borro el cache, el archivo class_map.php es el ultimo en modificarse de permisos, y queda en:

    'TeamSecurity' => 'data/visibility/TeamSecurity.php',
    'ACLVisibility' => 'data/visibility/ACLVisibility.php',
    'Connectors' => false,
    'CustomFields' => false,
    'ReportVisibility' => 'data/visibility/ReportVisibility.php',
    'TeamHierarchy' => false,
    'OwnerOrAdminVisibility' => 'data/visibility/OwnerOrAdminVisibility.php',
    'HomeViewSidecar' => false,
    'SugarACLEmailAddress' => 'data/acl/SugarACLEmailAddress.php',
    'SugarACLOpi' => 'data/acl/SugarACLOpi.php',
    'Zend_Http_Response' => 'vendor/Zend/Http/Response.php',
    'TrueExpression' => 'include/Expressions/Expression/Boolean/TrueExpression.php',
    'SugarFieldExpression' => 'include/Expressions/Expression/Generic/SugarFieldExpression.php',
    'StringLiteralExpression' => 'include/Expressions/Expression/String/StringLiteralExpression.php',
    'EqualExpression' => 'include/Expressions/Expression/Boolean/EqualExpression.php',
    'SugarRelationship' => 'data/Relationships/SugarRelationship.php',
    'M2MRelationship' => 'data/Relationships/M2MRelationship.php',
    'One2MRelationship' => 'data/Relationships/One2MRelationship.php',
    'One2MBeanRelationship' => 'data/Relationships/One2MBeanRelationship.php',
    'OwnerVisibility' => 'data/visibility/OwnerVisibility.php',
    'CustomSugarSearchEngineElasticIndexStrategySingle' => false,
    'SugarSearchEngineFactory' => 'include/SugarSearchEngine/SugarSearchEngineFactory.php',

    MArca el error 500 y vuelvo a actualizar con F5, y ahora el class_map tiene:


    'SugarRelationship' => 'data/Relationships/SugarRelationship.php',
    'M2MRelationship' => 'data/Relationships/M2MRelationship.php',
    'One2MRelationship' => 'data/Relationships/One2MRelationship.php',
    'One2MBeanRelationship' => 'data/Relationships/One2MBeanRelationship.php',
    'OwnerVisibility' => 'data/visibility/OwnerVisibility.php',
    'CustomSugarSearchEngineElasticIndexStrategySingle' => false,
    'SugarSearchEngineFactory' => 'include/SugarSearchEngine/SugarSearchEngineFactory.php',
    'SugarACLAdminOnly' => 'data/acl/SugarACLAdminOnly.php',
    'SugarACLDeveloperOrAdmin' => 'data/acl/SugarACLDeveloperOrAdmin.php',
    'SugarACLForecastWorksheets' => 'data/acl/SugarACLForecastWorksheets.php',
    'SugarACLParentModule' => 'data/acl/SugarACLParentModule.php',
    'SugarACLUsers' => 'data/acl/SugarACLUsers.php',
    'SugarACLDeveloperForAny' => 'data/acl/SugarACLDeveloperForAny.php',
    'SugarACLOAuthKeys' => 'data/acl/SugarACLOAuthKeys.php',
    'SugarACLOAuthTokens' => 'data/acl/SugarACLOAuthTokens.php',
    'SugarACLFilters' => 'data/acl/SugarACLFilters.php',
    'UserBasedRelationship' => 'data/Relationships/UserBasedRelationship.php',
    'EmailAddressRelationship' => 'data/Relationships/EmailAddressRelationship.php',
    );

    Si ejecuto el servicio por postman con el folder cache vacio el error que devuelve es: 

    {
    "error": "php_error_after_api",
    "error_message": "Su solicitud no pudo completarse. Ha ocurrido un error grave. Compruebe los registros de errores para más detalles."
    }

  • La respuesta estuvo en un archivo que tenia un simbolo extraño al inicio, invisible a la vista pero notorio cuando pasaba por medio del class_map, lo único que tuve que realizar es reescribir el archivo en un archivo nuevo y con esto fue solucionado el problema.