ok, so it's failing to get some exports - seems to happen when it moves from MovieLibrary02 to MovieLibrary08 or similar (each of which is a separate export)
messy as crap as I am doing this over remote desktop but the issue is somewhere in splitUrlIntoExportAndPath / GetExportList I think.
It appears that sometimes
Code:
exportlist = m_pLibNfs->mount_getexports(m_resolvedHostName);
tmp = exportlist;
if(tmp==NULL){
CLog::Log(LOGDEBUG, "NFSDEBUGPRINTOUT: CNfsConnection::GetExportList ********************** tmp is NULL");
}
Code:
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::splitUrlIntoExportAndPath refreshing export list
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList for url [MovieLibrary01/Definitely, Maybe (2008)/Definitely, Maybe.avi]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList m_resolvedHostName [192.168.1.51]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/Movies02]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/Movies01]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/MusicLibrary]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/OtherVideos]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/HomeMovieLibrary]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/FastAlbum]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/Store01]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/TVLibrary09]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/TVLibrary07]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/TVLibrary05]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/TVLibrary04]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/TVLibrary03]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/FamilyMovies01]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/FamilyMovies10]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/MovieLibrary08]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/MovieLibrary02]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/MovieLibrary01]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList after for loop
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::splitUrlIntoExportAndPath (main func) for url [MovieLibrary01/Definitely, Maybe (2008)/Definitely, Maybe.avi] exportPath [] relativePath []
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::splitUrlIntoExportAndPath export list not empty
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::splitUrlIntoExportAndPath got path from url [MovieLibrary01/Definitely, Maybe (2008)/Definitely, Maybe.avi]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::splitUrlIntoExportAndPath path is now [/MovieLibrary01/Definitely, Maybe (2008)/Definitely, Maybe.avi]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::splitUrlIntoExportAndPath path does not start with current export path - doing nothing?!
09:32:33 T:8004 DEBUG: Previous line repeats 11 times.
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::splitUrlIntoExportAndPath startswtih
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::Connect ret is true for url [MovieLibrary01/Definitely, Maybe (2008)/Definitely, Maybe.avi] exportPath [/MovieLibrary01] relativePath [//Definitely, Maybe (2008)/Definitely, Maybe.avi]
09:32:33 T:8004 DEBUG: NFS: Refreshing context for 192.168.1.51/MovieLibrary01, old: 79171, new: 79270
09:32:33 T:8004 DEBUG: NFS: Using cached context.
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::Connect read chunk size
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::Connect ret just before Connect returns is true
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNFSFile::Stat returned 0 for path //Definitely, Maybe (2008)/Definitely, Maybe.avi
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNFSFile::Exists for url MovieLibrary01/Descendants (2008)/Descendants.mkv
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::splitUrlIntoExportAndPath for url [MovieLibrary01/Descendants (2008)/Descendants.mkv] exportPath [] relativePath []
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::splitUrlIntoExportAndPath refreshing export list
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList for url [MovieLibrary01/Descendants (2008)/Descendants.mkv]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList m_resolvedHostName [192.168.1.51]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList ********************** tmp is NULL
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList after for loop
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::splitUrlIntoExportAndPath (main func) for url [MovieLibrary01/Descendants (2008)/Descendants.mkv] exportPath [] relativePath []
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::Connect ret is false for url [MovieLibrary01/Descendants (2008)/Descendants.mkv] exportPath [] relativePath []
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::Connect ret just before Connect returns is false
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNFSFile::Stat about to return -1 as !gNfsConnection
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNFSFile::Exists for url MovieLibrary08/Dinner for Schmucks (2010)/Dinner for Schmucks.mkv
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::splitUrlIntoExportAndPath for url [MovieLibrary08/Dinner for Schmucks (2010)/Dinner for Schmucks.mkv] exportPath [] relativePath []
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::splitUrlIntoExportAndPath refreshing export list
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList for url [MovieLibrary08/Dinner for Schmucks (2010)/Dinner for Schmucks.mkv]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList m_resolvedHostName [192.168.1.51]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/Movies02]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/Movies01]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/MusicLibrary]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/OtherVideos]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/HomeMovieLibrary]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/FastAlbum]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/Store01]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/TVLibrary09]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/TVLibrary07]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/TVLibrary05]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/TVLibrary04]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/TVLibrary03]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/FamilyMovies01]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/FamilyMovies10]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/MovieLibrary08]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/MovieLibrary02]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList exportStr [/MovieLibrary01]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::GetExportList after for loop
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::splitUrlIntoExportAndPath (main func) for url [MovieLibrary08/Dinner for Schmucks (2010)/Dinner for Schmucks.mkv] exportPath [] relativePath []
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::splitUrlIntoExportAndPath export list not empty
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::splitUrlIntoExportAndPath got path from url [MovieLibrary08/Dinner for Schmucks (2010)/Dinner for Schmucks.mkv]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::splitUrlIntoExportAndPath path is now [/MovieLibrary08/Dinner for Schmucks (2010)/Dinner for Schmucks.mkv]
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::splitUrlIntoExportAndPath path does not start with current export path - doing nothing?!
09:32:33 T:8004 DEBUG: Previous line repeats 9 times.
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::splitUrlIntoExportAndPath startswtih
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::Connect ret is true for url [MovieLibrary08/Dinner for Schmucks (2010)/Dinner for Schmucks.mkv] exportPath [/MovieLibrary08] relativePath [//Dinner for Schmucks (2010)/Dinner for Schmucks.mkv]
09:32:33 T:8004 DEBUG: NFS: Refreshing context for 192.168.1.51/MovieLibrary08, old: 79226, new: 79318
09:32:33 T:8004 DEBUG: NFS: Using cached context.
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::Connect read chunk size
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNfsConnection::Connect ret just before Connect returns is true
09:32:33 T:8004 DEBUG: NFSDEBUGPRINTOUT: CNFSFile::Stat returned 0 for path //Dinner for Schmucks (2010)/Dinner for Schmucks.mkv
...just keeping you up to date with progress as I trace it - but let me know if you have any brainwaves. I guess from here I need to look at why exportlist = m_pLibNfs->mount_getexports(m_resolvedHostName);
...is returning null sometimes
(and that's in libnfs right?)
(also how do I log in libnfs - jsut with a standard printf?? And then run from console? Or will that go to xbmc log??)
seems to be in here:
libnfssync.c
Code:
struct exportnode *mount_getexports(const char *server)
{
struct sync_cb_data cb_data;
struct rpc_context *rpc;
cb_data.is_finished = 0;
cb_data.return_data = NULL;
rpc = rpc_init_context();
if (mount_getexports_async(rpc, server, mount_getexports_cb, &cb_data) != 0) {
rpc_destroy_context(rpc);
return NULL;
}
wait_for_reply(rpc, &cb_data);
rpc_destroy_context(rpc);
return cb_data.return_data;
}