salesagility / SuiteCRM

SuiteCRM - Open source CRM for the world
https://www.suitecrm.com
GNU Affero General Public License v3.0
4.26k stars 2.03k forks source link

Quick Repair & Rebuild not working as expected #10414

Open ebsi-RBakade opened 2 months ago

ebsi-RBakade commented 2 months ago

Issue

Quick Repair & Rebuild not working as expected at the first execution after Suitecrm is installed. After freshly installing Suitecrm, I executed repair and rebuild and found some issues in it. First of all, inside ModuleInstall\ModuleInstaller.php file we’ve rebuild_all() function. So this function executes rebuild_relationships() first and then rebuild_tabledirectory(). Now rebuild_relationships require tabledirectory.ext.php file. But this file is getting created inside rebuild_tabledirectory(), so this function doesn’t get this file and it misses the exections of relationships inside tabledirectory.ext.php file… Weird! Now another point is for unknown reason, global $beanList variable inside sugarbean.php → createRelationshipMeta() function doesn’t contain all the beans for the first execution of repair and rebuild but for second execution it contains more beans out of which I needed EBSI_Correspondense for displaying correspondense tab in the case detail page.

This issue is already created in the forum https://community.suitecrm.com/t/repair-and-rebuild-not-working-properly/92599

Expected Behavior

For first point, I believe rebuild_tabledirectory() should be executed first and not rebuild_relationships() & for second point, it should get all the beans in the $beanlist.

Actual Behavior

As mentioned, it is not getting tabledirectory.ext.php file for relationships executions and for second point, $beanlist doesn't contain all the beans.

Possible Fix

execute rebuild_tabledirectory() first and then rebuild_relationships(). For second point, I am not sure.

Steps to Reproduce

  1. Install suitecrm application
  2. Set log level to "Info"
  3. add logs here https://github.com/salesagility/SuiteCRM/blob/hotfix/modules/Administration/RebuildRelationship.php#L94 & https://github.com/salesagility/SuiteCRM/blob/hotfix/data/SugarBean.php#L739
  4. do quick repair and rebuild via web or via cli.
  5. check the log (basically copy those two logs in another file)
  6. clear the log
  7. repeat step number 4
  8. check those 2 logs again and compare it with first log

Context

basically, in the deployment process we are executing this repair via cli as our deployment process so that we don't have to manually do it via web. But as it not working as expected we have to manually go to web and hit quick repair and rebuild. I believe this is HIGH priority bug.

Your Environment

SuiteBot commented 2 months ago

This issue has been mentioned on SuiteCRM. There might be relevant details there:

https://community.suitecrm.com/t/repair-and-rebuild-not-working-properly/92599/5

ebsi-RBakade commented 2 months ago

Can someone please take a look and provide updates on this?