You just need to start indexing with different way to get what is the error.
Try to create a file named
test.php, Then add below code
//Following 3 lines will load the magento admin environment.
$app = Mage::app('admin');
// to reindex the processes we require their ids
// for default magento there are 9 processes to reindex, numbered 1 to 9.
$ids = array(1,2,3,4,5,6,7,8,9);
// Sometimes there are processes from our custom modules that also require reindexing
// We need to add those ids to our existing array of ids
// To know the id of process, just hover on each process in your
// admin panel-> System-> Index Management
// You will get a url : admin/process/some_id/......
// this id corresponds to the process
$ids = array(1,2,3,4,5,6,7,8,9,390,391,478);
foreach($ids as $id)
//load each process through its id
$process = Mage::getModel('index/process')->load($id);
echo "Indexing for Process ID # ".$id." Done<br />";
Then add the file on root and run it by entering
www.yourdomain.com/text.php to the url.
Also if you have ssh access then run
php -f shell/indexer.php –reindex all from root directory.
Using this way you can find what the actual problem is.
Hope this will help you solve your problem.