{"action":"created","issue":{"url":"https://api.github.com/repos/pandegroup/openmm/issues/995","labels_url":"https://api.github.com/repos/pandegroup/openmm/issues/995/labels{/name}","comments_url":"https://api.github.com/repos/pandegroup/openmm/issues/995/comments","events_url":"https://api.github.com/repos/pandegroup/openmm/issues/995/events","html_url":"https://github.com/pandegroup/openmm/pull/995","id":91923413,"number":995,"title":"Record plugin load failures","user":{"login":"rmcgibbo","id":641278,"avatar_url":"https://avatars.githubusercontent.com/u/641278?v=3","gravatar_id":"","url":"https://api.github.com/users/rmcgibbo","html_url":"https://github.com/rmcgibbo","followers_url":"https://api.github.com/users/rmcgibbo/followers","following_url":"https://api.github.com/users/rmcgibbo/following{/other_user}","gists_url":"https://api.github.com/users/rmcgibbo/gists{/gist_id}","starred_url":"https://api.github.com/users/rmcgibbo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rmcgibbo/subscriptions","organizations_url":"https://api.github.com/users/rmcgibbo/orgs","repos_url":"https://api.github.com/users/rmcgibbo/repos","events_url":"https://api.github.com/users/rmcgibbo/events{/privacy}","received_events_url":"https://api.github.com/users/rmcgibbo/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":8,"created_at":"2015-06-29T22:22:49Z","updated_at":"2015-06-29T23:30:25Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/pandegroup/openmm/pulls/995","html_url":"https://github.com/pandegroup/openmm/pull/995","diff_url":"https://github.com/pandegroup/openmm/pull/995.diff","patch_url":"https://github.com/pandegroup/openmm/pull/995.patch"},"body":"When debugging installations of the OpenMM OpenCL/CUDA platforms, the general error message is just 'There is no registered platform named CUDA', without any information about how to debug the problem. Usually it's caused by `LD_LIBRARY_PATH` not being set correctly or similar, and the first thing I always do with people is run `ldd` on the `libOpenMMCUDA.so` library, but that's not something they'd think to do themselves without knowledge of the OpenMM plugin architecture and the linker.\r\n\r\nThis PR adds a new static method to `Platform`, `getLoadFailures`, that returns a vector/tuple of strings containing the errors produced by the last call to `loadPluginsFromDirectory` (which is called from python during the import process).\r\n\r\nSo, for example, you can do\r\n\r\n```\r\nimport simtk.openmm as mm\r\nmm.Platform.getLoadFailures()\r\n```\r\nAnd get something like\r\n```\r\n('Error loading library /home/rmcgibbo/opt/openmm-6.3.dev/lib/plugins/libOpenMMCUDA.so: libcuda.so.1: cannot open shared object file: No such file or directory',)\r\n```\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/pandegroup/openmm/issues/comments/116878755","html_url":"https://github.com/pandegroup/openmm/pull/995#issuecomment-116878755","issue_url":"https://api.github.com/repos/pandegroup/openmm/issues/995","id":116878755,"user":{"login":"mpharrigan","id":4967059,"avatar_url":"https://avatars.githubusercontent.com/u/4967059?v=3","gravatar_id":"","url":"https://api.github.com/users/mpharrigan","html_url":"https://github.com/mpharrigan","followers_url":"https://api.github.com/users/mpharrigan/followers","following_url":"https://api.github.com/users/mpharrigan/following{/other_user}","gists_url":"https://api.github.com/users/mpharrigan/gists{/gist_id}","starred_url":"https://api.github.com/users/mpharrigan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mpharrigan/subscriptions","organizations_url":"https://api.github.com/users/mpharrigan/orgs","repos_url":"https://api.github.com/users/mpharrigan/repos","events_url":"https://api.github.com/users/mpharrigan/events{/privacy}","received_events_url":"https://api.github.com/users/mpharrigan/received_events","type":"User","site_admin":false},"created_at":"2015-06-29T23:30:25Z","updated_at":"2015-06-29T23:30:25Z","body":"This might be something nice to have from the cpp library, esp. considering @rmcgibbo already coded it up"}}