Your description is not sufficiently detailed for me to duplicate your problem. The steps you describe (without details of the contents of the submodule definitions) are the same steps I regularly use to confirm that submodule update works on multiple platforms and with multiple configurations.
Then is something distinct in your environment that is not visible in my environment and is not included in your description of the issue. For example, it could be that you are seeing:
- JENKINS-55875 - Jenkins submodule update fails when submodule isn't clean
- JENKINS-43977 - Git checkout fails if submodule defined in .gitmodules don't exist
- JENKINS-38860 - Git plugin using local config to update submodules
If you are seeing one of those cases, please mark this issue as a duplicate and close it.
If you are seeing something that is not one of those cases, please describe the issue in enough detail that someone else can duplicate the problem. You're trying to persuade someone like me to give their personal time to help you with your issue. Make it easier for me to help you by providing enough information that the problem can be duplicated outside the specific environment where you are seeing the issue.