mirror of
https://github.com/SuiteCRM/SuiteCRM.git
synced 2026-03-02 19:16:58 -05:00
Elastic Search Results Object has unexpected side effects #4628
Labels
No labels
Area: API
Area: Campaigns
Area: Cases
Area: Clean Up
Area: Clean Up: Performance
Area: Dashlets
Area: Databases
Area: Developer Tools
Area: Elasticsearch
Area: Elasticsearch
Area: Emails
Area: Emails:Campaigns
Area: Emails:Cases
Area: Emails:Compose
Area: Emails:Config
Area: Emails:Templates
Area: Environment
Area: Installation
Area: Language
Area: Mobile
Area: Module
Area: PDFs
Area: PHP8
Area: Reports
Area: Studio
Area: Styling
Area: Upgrading
Area: Workflow
Area:Activity Stream
Area:Calls
Area:Import
Area:Projects
Area:Search
Area:Surveys
Area:Themes
Area:Users
Branch:Hotfix
Good First Issue
Hacktoberfest
Help Wanted
PR:Community Contribution
PR:Type:Enhancement
Priority:Critical
Priority:Important
Priority:Moderate
Severity: Major
Severity: Minor
Severity: Moderate
Status: Requires Code Review
Status: Requires Updates
Status: Stale
Status: Team Investigating
Status:Assessed
Status:Fix Proposed
Status:Needs Assessed
Status:Requires Automated Tests
Type: Bug
Type:Deprecated
Type:Discussion
Type:Duplicate
Type:Invalid
Type:Question
Type:Suggestion
Type:Suggestion
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/SuiteCRM-SuiteCRM#4628
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @JimMackin on GitHub (Oct 7, 2021).
Issue
lib/Search/SearchResults.php:getHitsAsBeans()loops around the results of the Global Search and converts the results to beans. If it finds a hit that isn't a valid bean however it attempts to reindex Elastic search. There's a few issues with this:The reindex doesn't actually update the index to remove the missing bean so this doesn't even fix the problem. The code then throws an exception anyway.Actually no longer sure if this is correct. If the reindex is successful it should remove the record in the index provided it's been modified recently.Expected Behavior
Searching should be quick and free from side effects.
Actual Behavior
Searching may trigger a reindex which often means the search doesn't finish
Possible Fix
Adding a continue statement for missing beans is probably a good, quick fix, it's not it's responsibility to maintain the index. If it is felt that searches should alter the index then a more appropriate class should send a request to elastic search marking that bean as removed.
Steps to Reproduce
Context
Trying to search a DB of ~4 million contacts fails on live.
Your Environment