Mono 2.10.2 Internal compiler error: Object reference
От: Игорь Евгеньевич  
Дата: 19.06.11 18:22
Оценка:
Строка кода, которая вызывает:
(int)Db.SetCommand(sql.Inject(new { db = Current.MetaDb.Name })).ExecuteScalar();

Show Detailed Compiler Output:

/var/www/corpgen/trunk/App_Code/Base.cs(67,24): error CS0584: Internal compiler error: Object reference not set to an instance of an object
/var/www/corpgen/trunk/App_Code/Base.cs(67,81): error CS1061: Type `object' does not contain a definition for `ExecuteScalar' and no extension method `ExecuteScalar' of type `object' could be found (are you missing a using directive or an assembly reference?)
/usr/lib/mono/4.0/mscorlib.dll (Location of the symbol related to previous error)
/var/www/corpgen/trunk/App_Code/Data/PostgreSQLDataProvider.cs(81,32): error CS0584: Internal compiler error: Object reference not set to an instance of an object
/var/www/corpgen/trunk/App_Code/Data/PostgreSQLDataProvider.cs(81,25): error CS0266: Cannot implicitly convert type `object' to `BLToolkit.Data.Sql.SqlProvider.ISqlProvider'. An explicit conversion exists (are you missing a cast?)

Есть идеи?
Re: Mono 2.10.2 Internal compiler error: Object reference
От: Игорь Евгеньевич  
Дата: 19.06.11 22:25
Оценка:
ИЕ>/var/www/corpgen/trunk/App_Code/Base.cs(67,24): error CS0584: Internal compiler error: Object reference not set to an instance of an object

Проблема в компиляторе, если использовать PreCompiled из Windows всё работает.
Re[2]: Mono 2.10.2 Internal compiler error: Object reference
От: -Dm-  
Дата: 20.06.11 02:35
Оценка:
Здравствуйте, Игорь Евгеньевич, Вы писали:

ИЕ>>/var/www/corpgen/trunk/App_Code/Base.cs(67,24): error CS0584: Internal compiler error: Object reference not set to an instance of an object


ИЕ>Проблема в компиляторе, если использовать PreCompiled из Windows всё работает.

Боюсь не только, у меня bltoolkit валит mono, в многопоточном приложении.
Re[3]: Mono 2.10.2 Internal compiler error: Object reference
От: Игорь Евгеньевич  
Дата: 20.06.11 08:45
Оценка:
Здравствуйте, -Dm-, Вы писали:

ИЕ>>Проблема в компиляторе, если использовать PreCompiled из Windows всё работает.

D>Боюсь не только, у меня bltoolkit валит mono, в многопоточном приложении.

А в деталях? Что используется?
Re: Mono 2.10.2 Internal compiler error: Object reference
От: IT Россия linq2db.com
Дата: 20.06.11 13:59
Оценка:
Здравствуйте, Игорь Евгеньевич, Вы писали:

ИЕ>Есть идеи?


Конфигурации DebugMono/ReleaseMono пробовали?
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: Mono 2.10.2 Internal compiler error: Object reference
От: -Dm-  
Дата: 20.06.11 16:33
Оценка:
ИЕ>А в деталях? Что используется?
Есть главная таблица и подчиненный пытаюсь их заполнять следующим образом

var list = db.GetTable<CUser>().Where(p => p.Name == userId);
_user = list.First();
_user.Units = db.GetTable<CUnit>().Where(p => p.UserId == _user.Name).ToList();
_user.Levels = db.GetTable<CUserLevel>().Where(p => p.UserId == _user.Name).ToList();
_user.Specializations = db.GetTable<CUserSpecialization>().Where(p => p.UserId == _user.Name).ToList();
_user.Options = db.GetTable<CUserOptions>().Single(p => p.UserId == _user.Name);

При нагрузке на приложении, mono валится. Конечно есть вероятность того что код приведенный выше не причем. Однако если его закоментировать все нормально. Пробовал на mono 2.10.2 и 2.11 из git. Под windows все работает. В данной момент пытаюсь локализовать проблему.
Re[5]: Mono 2.10.2 Internal compiler error: Object reference
От: -Dm-  
Дата: 23.06.11 02:42
Оценка:
D>При нагрузке на приложении, mono валится.
Видимо проблема в сборщике мусора sgen, если работать с boehm, то не валится.
Re[6]: Mono 2.10.2 Internal compiler error: Object reference
От: IT Россия linq2db.com
Дата: 23.06.11 04:23
Оценка:
Здравствуйте, -Dm-, Вы писали:

D>>При нагрузке на приложении, mono валится.

D>Видимо проблема в сборщике мусора sgen, если работать с boehm, то не валится.

Связь сборщика мусора с bltoolkit может быть только через DbManager. Нужно проверить везде ли он диспозится.
Если нам не помогут, то мы тоже никого не пощадим.
Re[7]: Mono 2.10.2 Internal compiler error: Object reference
От: -Dm-  
Дата: 23.06.11 07:18
Оценка:
Здравствуйте, IT, Вы писали:

IT>Связь сборщика мусора с bltoolkit может быть только через DbManager. Нужно проверить везде ли он диспозится.

Не факт, может в mono, linq кривой или еще что, а GC только 'катализатор' проблемы.

Вот так использую DbManager

public static DbManager GetDB()
{
BLToolkit.Data.DataProvider.PostgreSQLDataProvider.QuoteIdentifiers = true;
var _provider = new BLToolkit.Data.DataProvider.PostgreSQLDataProvider();
_connectionString = ConfigurationManager.ConnectionStrings["Base"].ToString();
return new DbManager(_provider, _connectionString);
}


using (var db = CData.GetDB())
{
....
db.Close();
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.