Error while using DensityDist

The twice printing might due to the way you write down the logp, where it first initialize as a function, and then the function get evaluated.
Did you have a look at How to set up a custom likelihood function for two variables ? It might clear some of your confusion.