Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Filter by Categories
All Posts
Conversion Rate Optimization
Copywriting
CueBlocks
CueBlocks Case Studies
Culture
Events
Google
Google Analytics
Google Search Console
Industry
Magento
Marketing
Mobile
Online Marketing
Pay Per Click
Recommended
SEO
Shopify
Social Media Marketing
Staff Favourites
Sustainable Marketing
Technical SEO
Technology
Usability and Accessibility
UX Design
Video
Web Development

Magento: Why SOLR indexation suddenly stopped working

We welcome any suitable alternatives to the solution being discussed here.

We are using Solr in our latest Magento EE project. While running the periodic index updates using Magento’s native CLI indexer (shell/indexer.php) we realized that there was suddenly no data being sent to Solr. Routine test on Solr’s side didn’t reveal any issues; the server was up and running and Magento (Admin > System > Catalog > Catalog Search > Test connection) was showing successful connection.

Analyzing Magento’s and Solr’s logs didn’t provide any clues on what might be happening except it turned out that the indexing process hung right after the index cleanup. Since there was no recent change in the code or server settings the logical conclusion was the database. Tracing Magento code starting from shell/indexer.php took us all the way down to lib/Zend/Db/Statement/Pdo.php:

public function _execute(array $params = null)
{
    try {
        if ($params !== null) {
            return $this->_stmt->execute($params);
        } else {
            return $this->_stmt->execute();
        }
    } catch (PDOException $e) {
        #require_once 'Zend/Db/Statement/Exception.php';
        throw new Zend_Db_Statement_Exception($e->getMessage(), (int) $e->getCode(), $e);
    }
}

The problem emerged at line 5 where PDO::execute() method is called from $this->_stmt PDO object. As per PHP documentation this function returns true/false but in this case it just did nothing. It turned out that there was a deadlock on one of the tables that prevented execute() from retrieving data and passing it to Solr.

Have you faced a similar issue? What was your solution for that?

Software used:
MagentoEE-1.10.1.1
Solr-3.3.0

I am a writer, reader, and a part time adventure and travel enthusiast. The other three things that vie for my mind share are dark chocolate, coffee, and photography. I am highly motivated by user perspectives and addressing the common human experience when I write.

MORE POSTS
Show Comments

Add a comment

GET OUR NEWSLETTER