has_many + through で定義したmodelに紐づくデータを取得すると、データベース上は1件ずつしか存在しないのに、各データが重複して取得されてしまうケースが発生しました。

具体的な内容としては、

「apple」と「orange」というテーブルがあり、「apple_orange」という中間テーブルがあるとします。
そして、appleのmodelファイルに

has_many :oranges, :through => :apple_oranges

と定義した場合、

apple.oranges

でapple_orangeを経由して orange のデータが取得できるはずです。

ここで、仮に以下のようなデータ状態だったとします。

・apple

id|title
--------
 1|AA

・orange

id|title
--------
 1|AA
 2|BB
 3|CC

・apple_orange

id|apple_id|orange_id
---------------------
 1|       1|        1
 2|       1|        2
 3|       1|        3

この場合、Apple.find(1).oranges の結果件数は 3件 だと思います。

これがorangeのデータがそれぞれ重複され 6件 取得できてしまうケースがありました。

今までにこのようなケースに遭ったことがなく、しかも、1回起こったものの、以降は発生していません。
発生時にたまたまデータが2件ずつ存在した、ということはありません。
Railsの内部的な問題でしょうか。
ご存知でしたらご教示いただければと思います。

なお、環境は以下になります。

Ruby 1.8.7
Rails 2.3.5
CentOS 5.9