2010-03-18 3 views
1

Je cours R via Rpy sur une distribution redhat linux. Régulièrement, je vais rencontrer ce message d'erreur:R segfault lors de l'exécution via Rpy sur Linux

*** caught segfault *** 
address (nil), cause 'unknown' 

Et tout le programme meurt là. Cela se produit généralement quand je cours beaucoup de régression r.lm(). Mais en exécutant simplement le code identique à nouveau, le problème peut ou ne peut pas disparaître (donc pas toujours reproductible). Est-ce que quelqu'un sait ce qui pourrait causer cela, et/ou comment je peux l'empêcher de se produire?

+1

La magie coûte plus cher. Attention à peut-être * montrer * ce qui * provoque * le segfault et le rendre * réplicable *? –

+0

Une autre chose serait de mais une boucle externe autour de lui dans R et voir si cela se sépare. –

Répondre

2

Il existe quelques possibilités.

  1. Le problème est avec le code R. Pour tester cela, exécutez le code dans R lui-même et voir si vous pouvez répliquer le problème.

  2. Le problème est avec Rpy. Exécutez le programme dans un débogueur et voyez exactement ce que vous passez de Python à R et de R à Python. Au hasard, vous avez une sorte de discordance variable qui ne se produit que dans certaines conditions.

  3. Le problème est lié à l'environnement. Est-ce que d'autres logiciels doivent être chargés pour que le programme s'exécute? Cela fonctionne-t-il une fois puis échoue lorsque vous l'exécutez à nouveau? (Peut-être vous ne fermez pas une connexion à un dossier?) Est-ce qu'il échoue sur les machines d'autres personnes ou juste les vôtres?

  4. Le problème provient des données. Générez-vous aléatoirement quelque chose? Cela expliquerait la nature intermittente du problème.

Si vous êtes toujours bloqué, lisez tips on debugging.

Questions connexes