Opened 17 years ago
Closed 17 years ago
#174 closed defect (worksforme)
Race condition on successive feature readers
Reported by: | ksgeograf | Owned by: | |
---|---|---|---|
Priority: | medium | Milestone: | 2.0 |
Component: | Server | Version: | 1.2.0 |
Severity: | major | Keywords: | MgFeatureReader C# API |
Cc: | External ID: | 939565 |
Description
The following code will crash the server:
foreach(MgLayerBase l in map.GetLayers()) { MgFeatureReader rd = ftr.SelectFeatures(new MgResourceIdentifier(l.GetFeatureSourceId()), l.GetFeatureClassName(), qry); while (rd.ReadNext()) { ... read some feature attributes ... } }
If I insert a "Sleep(5000);" before the select everything works fine (and slow :D).
Change History (5)
comment:1 by , 17 years ago
comment:2 by , 17 years ago
Yes, I am. Both rd.Close() and rd.Dispose().
The problem persists, even if I don't close the reader. If I remove the rd.ReadNext(), the problem goes away. If I remove the code to read feature attributes, the problem persists.
So, the open, read, open sequence seems to cause the server crash.
I found the following in the log:
<2007-05-26T14:55:22> Administrator Error: Invalid argument(s): [1] = "222959432" The feature reader ID was not found. StackTrace: - MgFeatureServiceHandler.ProcessOperation line 83 file c:\build_bond_area\mapguide_open_source_v1.2\build_13.7\mgdev\server\src\services\feature\FeatureServiceHandler.cpp - MgOpGetFeatures.Execute line 102 file c:\build_bond_area\mapguide_open_source_v1.2\build_13.7\mgdev\server\src\services\feature\OpGetFeatures.cpp - MgServerFeatureService.GetFeatures line 841 file c:\build_bond_area\mapguide_open_source_v1.2\build_13.7\mgdev\server\src\services\feature\ServerFeatureService.cpp Invalid argument(s): [1] = "222959432" The feature reader ID was not found.
I should have checked there before I posted the error, I appologize.
comment:3 by , 17 years ago
External ID: | → 939565 |
---|
comment:4 by , 17 years ago
Milestone: | 1.2 → 1.3 |
---|
comment:5 by , 17 years ago
Resolution: | → worksforme |
---|---|
Status: | new → closed |
I have not seen this problem for a very long time, and thus belive the problem to be fixed by coincidence.
Are you calling the reader's close function before creating a new one?