[pgrouting-dev] BDSP Crashes
Stephen Woodbridge
woodbri at swoodbridge.com
Fri Jul 6 10:40:41 PDT 2012
Hi Razequl,
Thank you for taking a look. For now you should drop this issue, and get
back to working on your plan. I will try to do some more testing on my
server and see if I can figure out what is happening here.
My server is running an outdated Debian lenny that I have not had time
to update. It has 4GB memory 64 bit OS and is generally very stable, but
as I said it is out dated so that might be the problem.
If you check in your test program and my csv file, I can try running
that here and see what I get.
-Steve
On 7/6/2012 1:33 PM, Razequl Islam wrote:
> Hi Steve,
> I could not reproduce the crashing bug in my pc. I have created the st
> table from data as you instructed. Here is the summary:
>
> routing=# \d st;
> Table "public.st <http://public.st>"
> Column | Type | Modifiers
> ----------+------------------+--------------------------------------------------
> gid | integer | not null default
> nextval('st_gid_seq'::regclass)
> id | double precision |
> source | double precision |
> target | double precision |
> cost | numeric |
> rev_cost | numeric |
> the_geom | geometry |
> Indexes:
> "st_pkey" PRIMARY KEY, btree (gid)
> "st_the_geom_gist" gist (the_geom)
> Check constraints:
> "enforce_dims_the_geom" CHECK (st_ndims(the_geom) = 2)
> "enforce_geotype_the_geom" CHECK (geometrytype(the_geom) =
> 'MULTILINESTRING'::text OR the_geom IS NULL)
> "enforce_srid_the_geom" CHECK (st_srid(the_geom) = 4326)
>
> The table has 41580 rows. Then first I run the the following query and
> got the mentioned output
>
> routing=# select * from bidir_dijkstra_shortest_path('select gid as id,
> source::integer, target::integer, cost::double precision as cost,
> rev_cost:: double precision as reverse_cost from st', 1187405, 1187508,
> true, true);
> vertex_id | edge_id | cost
> -----------+---------+------------------
> 1187405 | 28874 | 11.3385436250298
> 1187406 | 28819 | 16.928515840577
> 1187508 | -1 | 0
> (3 rows)
>
>
> After that I ran your query, just changing some of the variables, like
> gid in place of link_idand cost and rev_cost respectively in place of
> cost_time and rcost_time respectively. This query also returned the
> mentioned result without any problem.
>
> routing=# select * from st, (select gid, the_geom from
> bidir_dijkstra_shortest_path('select gid as id, source::integer,
> target::integer, cost::double precision as cost, rev_cost:: double
> precision as reverse_cost from st a', 1187405, 1187508, true, true), st
> where edge_id = gid) as rt where st.gid = rt.gid;
>
> gid | id | source | target | cost |
> rev_cost |
> the_geom | gid
> | the_geom
> -------+----------+---------+---------+------------------+------------------+--------------------------------------------------------------------------------------------------------------+-------+--------------------------------------------------------------------------------------------------------------
> 28819 | 25345248 | 1187508 | 1187406 | 16.928515840577 |
> 16.928515840577 |
> 0105000020E610000001000000010200000002000000B806B64AB038B4BFEF38454772C9494059A31EA2D11DB4BFBD5296218EC94940
> | 28819 |
> 0105000020E610000001000000010200000002000000B806B64AB038B4BFEF38454772C9494059A31EA2D11DB4BFBD5296218EC94940
> 28874 | 25345111 | 1187405 | 1187406 | 11.3385436250298 |
> 11.3385436250298 |
> 0105000020E610000001000000010200000002000000F623456458C5B3BF44696FF085C9494059A31EA2D11DB4BFBD5296218EC94940
> | 28874 |
> 0105000020E610000001000000010200000002000000F623456458C5B3BF44696FF085C9494059A31EA2D11DB4BFBD5296218EC94940
> (2 rows)
>
> I have run several other queries with success.
> I am not sure what is causing your server crash. It will be very helpul
> if you provide some more information on the server like memory etc. I am
> running ubuntu 12.04 on a core i5 processor with 4GB memory. Another
> thing may be helpful, running shortest_path instead of
> bidir_dijkstra_shortest_path first. If it runs correct, then we are sure
> that every other things are right with the query. Then just change the
> shortest_path to bidir_dijkstra_shortest_path.
>
> I am still trying to break it. Please let me know if there are other
> ways to do it.
>
> -Razequl
>
> On Mon, Jul 2, 2012 at 6:51 PM, Razequl Islam <ziboncsedu at gmail.com
> <mailto:ziboncsedu at gmail.com>> wrote:
>
> Hi Steve,
> I downloaded the csv file and used my test application. But it ran
> fine and produced the following output:
>
> 1187405 | 25345111 | 11.338544
> 1187406 | 25345248 | 16.928516
> 1187508 | -1 | 0.000000
>
> I ran some other queries on the graph but could not crash the
> program. So I suspect the problem may lie in the wrapper classes. I
> will create a table and run the query.
>
> -Razequl
>
>
>
> On Mon, Jul 2, 2012 at 10:25 AM, Stephen Woodbridge
> <woodbri at swoodbridge.com <mailto:woodbri at swoodbridge.com>> wrote:
>
> Argh! sorry my bad. Try:
>
> http://imaptools.com:8080/dl/ test.tgz
> <http://imaptools.com:8080/dl/test.tgz>
>
> -Steve
>
>
> On 7/1/2012 11:45 PM, Razequl Islam wrote:
>
> Hi Steve,
>
> I am trying to download the csv but ending up with 404 Not
> Found error.
> Please confirm the URL works. I am also getting the same
> problem with
> http://imaptools.com/dl/test. tgz
> <http://imaptools.com/dl/test.tgz>
>
> -Razequl
>
> On Sun, Jul 1, 2012 at 7:37 PM, Stephen Woodbridge
> <woodbri at swoodbridge.com <mailto:woodbri at swoodbridge.com>
> <mailto:woodbri at swoodbridge. com
> <mailto:woodbri at swoodbridge.com>>> wrote:
>
> Razqequl,
>
> I have not looked into the reason, but my intuition it
> that it may
> be because this graph has about 50K edges so it will be
> larger than
> most anything that you generated by hand, and the edge
> and node
> numbers are very large because this is an extract from
> a 10s of
> million of edges graph. There were no error message
> other than the
> generic postgresql message the the server crashed. You
> will probably
> fine you have a segv in your test program.
>
> I can download a zipped copy of the csv file. The first
> row is the
> column names.
>
> http://imaptools.com/dl/bdsp- big-bug.zip
> <http://imaptools.com/dl/bdsp- big-bug.zip
> <http://imaptools.com/dl/bdsp-big-bug.zip>>
>
> -Steve
>
>
> On 7/1/2012 5:18 AM, Razequl Islam wrote:
>
> Hi Steve,
> Bad news :(
>
> As I mentioned, I already have a test application
> to read from text
> file, it will be very helpful if you send me a csv file
> containing the
> graph. Also please let me know if there is any
> error message. I am
> looking into my code for a possible reason.
>
> -Razequl
>
> On Sun, Jul 1, 2012 at 3:19 AM, Stephen Woodbridge
> <woodbri at swoodbridge.com
> <mailto:woodbri at swoodbridge.com>
> <mailto:woodbri at swoodbridge. com
> <mailto:woodbri at swoodbridge.com>>
> <mailto:woodbri at swoodbridge
> <mailto:woodbri at swoodbridge>. com
>
> <mailto:woodbri at swoodbridge. com
> <mailto:woodbri at swoodbridge.com>>>> wrote:
>
> Hi Razequl,
>
> I tried a larger test and it crashed the server.
>
> You can test it like this:
>
> # fetch a test file from my server
> wget http://imaptools.com/dl/test. tgz
> <http://imaptools.com/dl/test. tgz
> <http://imaptools.com/dl/test. tgz
> <http://imaptools.com/dl/test.tgz>>>
>
> # extract the tarfile into directory test
> tar xzf test.tgz
>
> # load the file into your test database into
> table "st"
> shp2pgsql -s 4326 -c -D -I -N skip
> test/bdsp-bug.shp st |
> psql -U
> user -h localhost mydatabase
>
> # get into psql or pgadmin and run the following
> psql -U user -h localhost mydatabase
> SELECT * FROM st, (
> SELECT gid,the_geom
> FROM
> bidir_dijkstra_shortest_path(
> 'SELECT link_id as id,
> source::integer,
> target::integer,
> cost_time::double
> precision as
> cost ,
> rcost_time as
> reverse_cost
> FROM st a',
> 1187405,
> 1187508,
> true,
> true
> ), st where edge_id = link_id
> ) as rt
> WHERE st.gid=rt.gid;
>
> This crashes my server!
>
> If you want to write a testmain.cpp, I can
> provide the
> graph data in
> a csv file that you could read in and pass to
> your code
> instead of
> the query to get the data from table st.
>
> -Steve
> ______________________________ _________________
> pgrouting-dev mailing list
> pgrouting-dev at lists.osgeo.org
> <mailto:pgrouting-dev at lists.osgeo.org>
> <mailto:pgrouting-dev at lists. osgeo.org
> <mailto:pgrouting-dev at lists.osgeo.org>>
> <mailto:pgrouting-dev at lists
> <mailto:pgrouting-dev at lists>. osgeo.org <http://osgeo.org>
>
> <mailto:pgrouting-dev at lists. osgeo.org
> <mailto:pgrouting-dev at lists.osgeo.org>>>
> http://lists.osgeo.org/ mailman/listinfo/pgrouting-dev
> <http://lists.osgeo.org/
> mailman/listinfo/pgrouting-dev
> <http://lists.osgeo.org/
> mailman/listinfo/pgrouting-dev
> <http://lists.osgeo.org/mailman/listinfo/pgrouting-dev> > >
>
>
>
>
>
>
> ______________________________ _________________
> pgrouting-dev mailing list
> pgrouting-dev at lists.osgeo.org
> <mailto:pgrouting-dev at lists.osgeo.org>
> <mailto:pgrouting-dev at lists. osgeo.org
> <mailto:pgrouting-dev at lists.osgeo.org>>
> http://lists.osgeo.org/ mailman/listinfo/pgrouting-dev
> <http://lists.osgeo.org/
> mailman/listinfo/pgrouting-dev
> <http://lists.osgeo.org/mailman/listinfo/pgrouting-dev> >
>
>
>
> ______________________________ _________________
> pgrouting-dev mailing list
> pgrouting-dev at lists.osgeo.org
> <mailto:pgrouting-dev at lists.osgeo.org>
> <mailto:pgrouting-dev at lists. osgeo.org
> <mailto:pgrouting-dev at lists.osgeo.org>>
> http://lists.osgeo.org/ mailman/listinfo/pgrouting-dev
> <http://lists.osgeo.org/ mailman/listinfo/pgrouting-dev
> <http://lists.osgeo.org/mailman/listinfo/pgrouting-dev> >
>
>
>
>
> ______________________________ _________________
> pgrouting-dev mailing list
> pgrouting-dev at lists.osgeo.org
> <mailto:pgrouting-dev at lists.osgeo.org>
> http://lists.osgeo.org/ mailman/listinfo/pgrouting-dev
> <http://lists.osgeo.org/mailman/listinfo/pgrouting-dev>
>
>
>
> ______________________________ _________________
> pgrouting-dev mailing list
> pgrouting-dev at lists.osgeo.org <mailto:pgrouting-dev at lists.osgeo.org>
> http://lists.osgeo.org/ mailman/listinfo/pgrouting-dev
> <http://lists.osgeo.org/mailman/listinfo/pgrouting-dev>
>
>
>
>
>
> _______________________________________________
> pgrouting-dev mailing list
> pgrouting-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/pgrouting-dev
>
More information about the pgrouting-dev
mailing list