Faits : A. Par ordonnance du 4 juin 2014, le Ministère public genevois a ordonné le classement de la procédure ouverte à l'encontre de X._ pour trafic de stupéfiants, en réservant la reprise de la procédure préliminaire close en cas de nouveaux moyens de preuve et de faits nouveaux (art. 323 al. 1 CPP). Conformément à l'art. 429 CPP, il a alloué à l'intéressé un montant de 3'690 fr., avec intérêts à 5 % dès le 21 décembre 2013, pour le tort moral subi dans la procédure pénale. B. Par arrêt du 29 septembre 2014, la Chambre pénale de recours de la Cour de justice genevoise a rejeté le recours formé par X._ contre cette ordonnance. C. Contre ce dernier arrêt, X._ dépose un recours en matière pénale devant le Tribunal fédéral. Il conclut à l'annulation de l'arrêt attaqué et à sa réforme en ce sens que l'autorité cantonale lui octroie une indemnité pour détention injustifiée de 43'050 fr., avec intérêts dès le 22 octobre 2013, et le libère des frais de la procédure de recours cantonale. A titre subsidiaire, il demande l'annulation de l'arrêt attaqué et le renvoi de la cause à l'autorité cantonale pour nouvelle décision. En outre, il sollicite l'assistance judiciaire. Invités à se déterminer, la cour cantonale et le Ministère public cantonal ont déposé des observations. X._ y a répliqué.