All Apps and Add-ons
Highlighted

Why can't two rendering modules display at the same time?

Explorer

I have a custom view with the following hierarchy :

some SideView fields
    SideView Button
        SideView Search
            SideView Pager
                SideView Table
            My custom module

When I launch the search using the button, only one render module displays its results; the other one keeps waiting for data. If I launch the search again, the other one might be the one to get results. Which one gets the data seems to be random.

From Chromium's Developer tools' Network tab, I see only one render request is sent to /en-GB/module/system/Something, which is why the other one doesn't receive data.

When I remove the Pager module and keep only the Table module (and my custom module), both always render. This is because, for some reason, SideView's Table module doesn't send a render request and gets data in another way (how?).

The same behaviour is seen when using two SideView Pager modules, for example. Only one is displayed at a time. This makes me believe my custom module is not responsible for this.

If someone has any idea why this is happening, please tell me!

I use Splunk 5.0.5.

0 Karma
Highlighted

Re: Why can't two rendering modules display at the same time?

SplunkTrust
SplunkTrust

I think it's going to boil down to one of these problems.

1) A coding mistake in the custom module. What is the custom module and what does it try and do?

If you could post the JS source for it I might be able to shed some light on the problem.

It is certainly strange though that the problem is still exhibited when the custom module is replaced by a second Pager module... But since the symptoms you describe are usually caused by a JS error, and the most likely culprit for an unknown JS error... is the custom module I'm afraid.

It's possible in your case to exonerate the custom module there was some misinterpretation or nesting typo or other weirdness happening.

2) Something the search does that causes the results to die, or something that custom module does that causes the results to die. Make sure you have a Message module in the view so that you can actually see error messages like this. One common mistake is to develop with no Message module and this can leave you trapped unable to see the simple error the system is trying to tell you.

You might also fish out the exact search the UI is running (or insert an HTML module with $search$ in it to do the same), and run the search in another view.

3) Can you post the page XML in pastebin? It's possible that there's a clue there too.

Bottom line - there is certainly nothing in the module framework or in SplunkWeb or in the Sideview code that should be able to allow only one module to render and I've never heard of this problem before. However it does sound like the kind of race condition that can result if a module on the page is throwing a JavaScript error when requesting or rendering.

As to the requests to the server, the Table does make a request to the server, it just wont look like the other two requests.

0 Karma
Highlighted

Re: Why can't two rendering modules display at the same time?

Explorer

Thank you! Asked another question with included code and other details because Splunk Answers wouldn't let me edit this question.

0 Karma