Sorry, I forgot to share one important catch:
qpimd support for source-specific static igmp on an interface WILL FAIL if you have a host/application issuing IGMPv2 any-source joins behind that interface.
The reason is the IGMPv2 any-source join forces qpimd to switch the group mode to ASM (any-source multicast); however, qpimd is unable to program ASM groups into the kernel.
There should be some provision in qpimd to prevent such a behavior, but unfortunately there is none.
So it is possible that mreceive/mcfirst issuing IGMPv2 any-source joins behind eth0 may be breaking things.
While the static join at eth1 may be restoring the SSM state.
Just a wild guess of course.
If you can switch the test tool for one with IGMPv3 source-specific support, one application I used to test multicast streaming with SSM was nepim, like this:
#
# Member host joins channel (1.1.1.1,239.1.1.1)
#
member_host$ nepim -j 1.1.1.1+239.1.1.1
#
# Source host at 1.1.1.1 sends a 100 Kbps stream toward 239.1.1.1
#
source_host$ nepim -b 1.1.1.1 -M -c 239.1.1.1 -r 100k -a 10d
Best regards,
Everton