Re: [sqlite] Issues after upgrade to 3.8.2

2014-03-06 Thread Denis Gladkikh
Thank you Joe,
Awesome work guys!

--
Thanks,
Denis Gladkikh
http://outcoldman.com


On Wed, Mar 5, 2014 at 7:03 PM, Joe Mistachkin wrote:

>
> Denis Gladkikh wrote:
> >
> > I still have this issue with SQLite 3.8.3.1, I could fix my case my
> > changing line
> >
> > "LastPlayed] = (select case when [UserPlaylist].[LastPlayed] >
> > s.[LastPlayed] then [UserPlaylist].[LastPlayed] else s.[LastPlayed] end
> > from [Song] as s where s.[SongId] = new.[SongId]),"
> >
>
> Thanks for the detailed report.  This issue has been fixed on trunk:
>
> https://www.sqlite.org/src/info/5bcd0b1ca5
>
> --
> Joe Mistachkin
>
> ___
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
___
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] Issues after upgrade to 3.8.2

2014-03-05 Thread Joe Mistachkin

Denis Gladkikh wrote:
> 
> I still have this issue with SQLite 3.8.3.1, I could fix my case my
> changing line
> 
> "LastPlayed] = (select case when [UserPlaylist].[LastPlayed] >
> s.[LastPlayed] then [UserPlaylist].[LastPlayed] else s.[LastPlayed] end
> from [Song] as s where s.[SongId] = new.[SongId]),"
> 

Thanks for the detailed report.  This issue has been fixed on trunk:

https://www.sqlite.org/src/info/5bcd0b1ca5

--
Joe Mistachkin

___
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] Issues after upgrade to 3.8.2

2014-03-03 Thread Denis Gladkikh
Hey Guys,

I still have this issue with SQLite 3.8.3.1, I could fix my case my
changing line

"LastPlayed] = (select case when [UserPlaylist].[LastPlayed] >
s.[LastPlayed] then [UserPlaylist].[LastPlayed] else s.[LastPlayed] end
from [Song] as s where s.[SongId] = new.[SongId]),"

to

"[LastPlayed] = max( [UserPlaylist].[LastPlayed]  , (select s.[LastPlayed]
end from [Song] as s where s.[SongId] = new.[SongId]) )"

But if you want to debug this issue, some details below:

My environment is Windows 8.1 x64 + VS 2012 Update 4 +
sqlite-winrt-3080200.vsix
from http://sqlite.org/download.html. I did not build sqlite by myself, I'm
using official one from downloads.

This DropBox folder has VS 2012 project and dump
https://www.dropbox.com/sh/o92rrqzqg8i5w5q/WvLuJLkrmb

I'm not sure if VS project has all my settings: to get Mixed mode debugging
(Managed + Native code) working in VS 2012 for Windows Store apps - you
need to open project properties and on Debug tab specify Debugger type =
"Mixed (managed and native)". Just try to launch my app and click on Test
button. You should get assert in sqlite (this is where I saved debugging
session as a dump). This issue can be reproduced only on x86 version of
sqlite (at least in my case).

Let me know if I can advise somehow to reproduce this problem.




--
Thanks,
Denis Gladkikh
http://outcoldman.com


On Wed, Dec 25, 2013 at 12:55 PM, Denis Gladkikh wrote:

> Hi All,
>
> After upgrade from 3.8.1 to 3.8.2 I started to get asserts in debug build
> and {"Attempted to read or write protected memory. This is often an
> indication that other memory is corrupt."} in Relase when I have x86 app on
> amd64 Windows 8.1. These are asserts:
>
> ---
> Microsoft Visual C++ Runtime Library
> ---
> Assertion failed!
>
> Program: ...Windows\GoogleMusic\bin\x86\Debug\AppX\sqlite3.DLL
> File: sqlite3.c
> Line: 79461
>
> Expression: pExpr->iTable==0 || pExpr->iTable==1
>
> For information on how your program can cause an assertion
> failure, see the Visual C++ documentation on asserts
>
> (Press Retry to debug the application - JIT must be enabled)
> ---
> Abort   Retry   Ignore
> ---
>
>
> ---
> Microsoft Visual C++ Runtime Library
> ---
> Assertion failed!
>
> Program: ...Windows\GoogleMusic\bin\x86\Debug\AppX\sqlite3.DLL
> File: sqlite3.c
> Line: 62181
>
> Expression: ([1])==pEnd || p[0].db==p[1].db
>
> For information on how your program can cause an assertion
> failure, see the Visual C++ documentation on asserts
>
> (Press Retry to debug the application - JIT must be enabled)
> ---
> Abort   Retry   Ignore
> ---
>
>
> My environment is:
>
> SQLite for Windows Runtime (for VS 2012)
>
> http://visualstudiogallery.msdn.microsoft.com/23f6c55a-4909-4b1f-80b1-25792b11639e
> I use my own fork of https://github.com/praeclarum/sqlite-net for
> connection.
>
> I'm on Windows x64, when I'm building amd64 bit app - everything seems
> fine, but in case of x86 on Windows 8.1 x64 - I'm getting this error. Did
> not have a chance to verify x86 on Win8 x86.
>
> It looks like that SQLite fails to do insert in one of my tables, which
> has following trigger:
>
> CREATE TRIGGER insert_userplaylistentry AFTER INSERT ON UserPlaylistEntry
>   BEGIN
>
> update [UserPlaylist]
> set
> [SongsCount] = [SongsCount] + 1,
> [Duration] = [UserPlaylist].[Duration] + (select s.[Duration] from
> [Song] as s where s.[SongId] = new.[SongId]),
> [ArtUrl] = case when nullif([UserPlaylist].[ArtUrl], '') is null
> then (select s.[AlbumArtUrl] from [Song] as s where s.[SongId] =
> new.[SongId]) else [UserPlaylist].[ArtUrl] end,
> [LastPlayed] = (select case when [UserPlaylist].[LastPlayed] >
> s.[LastPlayed] then [UserPlaylist].[LastPlayed] else s.[LastPlayed] end
> from [Song] as s where s.[SongId] = new.[SongId]),
> [OfflineSongsCount] = [UserPlaylist].[OfflineSongsCount] +
> coalesce( (select 1 from CachedSong cs where new.[SongId] = cs.[SongId]) ,
> 0),
> [OfflineDuration] = [UserPlaylist].[OfflineDuration] + coalesce(
> (select s.[Duration] from [Song] as s inner join [CachedSong] as cs on
> s.SongId = cs.SongId where s.[SongId] = new.[SongId]), 0)
> where [PlaylistId] = new.PlaylistId;
>
>   END;
>
>
> If I remove highlighted rows - insert works.
> If somebody is interesting to take deeper look in this problem - I can
> send my database.
>
> Btw, by default all Windows Store applications are x86, so if this is
> global issue - it can affect a lot of Windows Store developers.
>
> --
> Thanks,
> Denis Gladkikh
> http://outcoldman.com
>
___
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users


Re: [sqlite] Issues after upgrade to 3.8.2

2013-12-26 Thread Richard Hipp
On Wed, Dec 25, 2013 at 3:55 PM, Denis Gladkikh wrote:

> Assertion failed!
>
> Program: ...Windows\GoogleMusic\bin\x86\Debug\AppX\sqlite3.DLL
> File: sqlite3.c
> Line: 79461
>
> Expression: pExpr->iTable==0 || pExpr->iTable==1
>
> Program: ...Windows\GoogleMusic\bin\x86\Debug\AppX\sqlite3.DLL
> File: sqlite3.c
> Line: 62181
>
> Expression: ([1])==pEnd || p[0].db==p[1].d




>
> My environment is:
>
> SQLite for Windows Runtime (for VS 2012)
>
> http://visualstudiogallery.msdn.microsoft.com/23f6c55a-4909-4b1f-80b1-25792b11639e
> I use my own fork of https://github.com/praeclarum/sqlite-net for
> connection.
>
> I'm on Windows x64, when I'm building amd64 bit app - everything seems
> fine, but in case of x86 on Windows 8.1 x64 - I'm getting this error. Did
> not have a chance to verify x86 on Win8 x86.
>

This (together with the nature of the asserts that fail) suggest some kind
of compiler malfunction.  Do you get the same problems if you disable
optimizations?  When compilers make mistakes, it is usually in the
optimizer, and so if you disable optimizations sometimes things will work
better.

The problem might also be memory corruption in your application.

If you can provide a test case we can look further.  But without a
reproducible test case, there isn't much we can do.



>
> It looks like that SQLite fails to do insert in one of my tables, which has
> following trigger:
>
> CREATE TRIGGER insert_userplaylistentry AFTER INSERT ON UserPlaylistEntry
>   BEGIN
>
> update [UserPlaylist]
> set
> [SongsCount] = [SongsCount] + 1,
> [Duration] = [UserPlaylist].[Duration] + (select s.[Duration] from
> [Song] as s where s.[SongId] = new.[SongId]),
> [ArtUrl] = case when nullif([UserPlaylist].[ArtUrl], '') is null
> then (select s.[AlbumArtUrl] from [Song] as s where s.[SongId] =
> new.[SongId]) else [UserPlaylist].[ArtUrl] end,
> [LastPlayed] = (select case when [UserPlaylist].[LastPlayed] >
> s.[LastPlayed] then [UserPlaylist].[LastPlayed] else s.[LastPlayed] end
> from [Song] as s where s.[SongId] = new.[SongId]),
> [OfflineSongsCount] = [UserPlaylist].[OfflineSongsCount] +
> coalesce( (select 1 from CachedSong cs where new.[SongId] = cs.[SongId]) ,
> 0),
> [OfflineDuration] = [UserPlaylist].[OfflineDuration] + coalesce(
> (select s.[Duration] from [Song] as s inner join [CachedSong] as cs on
> s.SongId = cs.SongId where s.[SongId] = new.[SongId]), 0)
> where [PlaylistId] = new.PlaylistId;
>
>   END;
>
>
> If I remove highlighted rows - insert works.
> If somebody is interesting to take deeper look in this problem - I can send
> my database.
>
> Btw, by default all Windows Store applications are x86, so if this is
> global issue - it can affect a lot of Windows Store developers.
>
> --
> Thanks,
> Denis Gladkikh
> http://outcoldman.com
> ___
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>



-- 
D. Richard Hipp
d...@sqlite.org
___
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users


[sqlite] Issues after upgrade to 3.8.2

2013-12-26 Thread Denis Gladkikh
Hi All,

After upgrade from 3.8.1 to 3.8.2 I started to get asserts in debug build
and {"Attempted to read or write protected memory. This is often an
indication that other memory is corrupt."} in Relase when I have x86 app on
amd64 Windows 8.1. These are asserts:

---
Microsoft Visual C++ Runtime Library
---
Assertion failed!

Program: ...Windows\GoogleMusic\bin\x86\Debug\AppX\sqlite3.DLL
File: sqlite3.c
Line: 79461

Expression: pExpr->iTable==0 || pExpr->iTable==1

For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts

(Press Retry to debug the application - JIT must be enabled)
---
Abort   Retry   Ignore
---


---
Microsoft Visual C++ Runtime Library
---
Assertion failed!

Program: ...Windows\GoogleMusic\bin\x86\Debug\AppX\sqlite3.DLL
File: sqlite3.c
Line: 62181

Expression: ([1])==pEnd || p[0].db==p[1].db

For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts

(Press Retry to debug the application - JIT must be enabled)
---
Abort   Retry   Ignore
---


My environment is:

SQLite for Windows Runtime (for VS 2012)
http://visualstudiogallery.msdn.microsoft.com/23f6c55a-4909-4b1f-80b1-25792b11639e
I use my own fork of https://github.com/praeclarum/sqlite-net for
connection.

I'm on Windows x64, when I'm building amd64 bit app - everything seems
fine, but in case of x86 on Windows 8.1 x64 - I'm getting this error. Did
not have a chance to verify x86 on Win8 x86.

It looks like that SQLite fails to do insert in one of my tables, which has
following trigger:

CREATE TRIGGER insert_userplaylistentry AFTER INSERT ON UserPlaylistEntry
  BEGIN

update [UserPlaylist]
set
[SongsCount] = [SongsCount] + 1,
[Duration] = [UserPlaylist].[Duration] + (select s.[Duration] from
[Song] as s where s.[SongId] = new.[SongId]),
[ArtUrl] = case when nullif([UserPlaylist].[ArtUrl], '') is null
then (select s.[AlbumArtUrl] from [Song] as s where s.[SongId] =
new.[SongId]) else [UserPlaylist].[ArtUrl] end,
[LastPlayed] = (select case when [UserPlaylist].[LastPlayed] >
s.[LastPlayed] then [UserPlaylist].[LastPlayed] else s.[LastPlayed] end
from [Song] as s where s.[SongId] = new.[SongId]),
[OfflineSongsCount] = [UserPlaylist].[OfflineSongsCount] +
coalesce( (select 1 from CachedSong cs where new.[SongId] = cs.[SongId]) ,
0),
[OfflineDuration] = [UserPlaylist].[OfflineDuration] + coalesce(
(select s.[Duration] from [Song] as s inner join [CachedSong] as cs on
s.SongId = cs.SongId where s.[SongId] = new.[SongId]), 0)
where [PlaylistId] = new.PlaylistId;

  END;


If I remove highlighted rows - insert works.
If somebody is interesting to take deeper look in this problem - I can send
my database.

Btw, by default all Windows Store applications are x86, so if this is
global issue - it can affect a lot of Windows Store developers.

--
Thanks,
Denis Gladkikh
http://outcoldman.com
___
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users