[Ludia-users 68] Re: CreateIndexでエラー

Back to archive index

morit****@razil***** morit****@razil*****
2007年 7月 9日 (月) 16:51:54 JST


森です。

>>> Shingo Kawamura さんは書きました:
> 河村です。お世話になっております。
> 
> 3パターン程実行してみました。

お手数おかけします。

> >> ・/3GBスイッチを入れて実行してみる(論理空間が関係なければ無駄になりそうですね)
> 転置ファイルが3GB分作成されました。
> ---
> 194262.SEN                16,512KB
> 194262.SEN.i               83,648KB
> 194262.SEN.i.c             524,096KB
> 194262.SEN.i.c.001       524,288KB
> 194262.SEN.i.c.002       524,288KB
> 194262.SEN.i.c.003       523,776KB
> 194262.SEN.i.c.004       519,936KB
> 194262.SEN.i.c.005       280,320KB
> 194262.SEN.i.c.006       278,784KB
> 194262.SEN.l               8,320KB
> ---
> 最終的には
> 07/06:08:40:22.337|A| MapViewOfFile failed #8
> 07/06:08:40:22.437|A| io_win_map(8183, 287121676) failed!!
> というエラーで落ちたようです。
> 
> やはり、論理アドレス空間でしょうか…

そのようですね。

mapしたメモリが意図したように解放されていないようです。

もし再度動かす機会がありましたら、
以下のようにlib/io.cにパッチを当てて試してみて頂けると、
切り分けのヒントになります。

UnmapViewOfFileして、CloseHandleすれば、
論理アドレス空間が再利用可能になると考えていたのですが、
根本的に勘違いしているのかも知れません。。


Index: lib/io.c
===================================================================
--- lib/io.c    (リビジョン 484)
+++ lib/io.c    (作業コピー)
@@ -811,7 +811,7 @@
   if (res) {
     mmap_size += length;
   } else {
-    SEN_LOG(sen_log_alert, "MapViewOfFile failed #%d", GetLastError());
+    SEN_LOG(sen_log_alert, "MapViewOfFile failed #%d <%d>", GetLastError(), mmap_size);
   }
   /* MUTEX_UNLOCK(fi->mutex); */
   return res;
@@ -918,7 +918,7 @@
   if (res) {
     mmap_size += length;
   } else {
-    SEN_LOG(sen_log_alert, "MapViewOfFile failed #%d", GetLastError());
+    SEN_LOG(sen_log_alert, "MapViewOfFile failed #%d  <%d>", GetLastError(), mmap_size);
   }
   return res;
 }




Ludia-users メーリングリストの案内
Back to archive index