fisharebest / webtrees

Online genealogy
https://webtrees.net
GNU General Public License v3.0
454 stars 298 forks source link

Places from historic events appear in the geographic data list #4080

Closed reteP-riS closed 2 years ago

reteP-riS commented 2 years ago

Please see https://www.webtrees.net/index.php/en/forum/help-for-2-0/36170-non-existing-deleted-place-keeps-resurrecting-in-control-panel

fisharebest commented 2 years ago

Entries in the gazetteer (wt_place_location) table are created from place names in your genealogy.

today the zombie place resurrected once more without the option to delete it and without finding any data in the mentioned family tree.

Where did you look for this zombie place name? The database? An exported GEDCOM file? ...?

reteP-riS commented 2 years ago

I checked ALL database tables including the Vesta wtgov... tables, even exporting the complete database, but the place in question is not there. Only after this mysterious resurrection it appears in wt_place_location and wt_places, but not in wt_placelinks. That place is not included in the 2 GEDCOM files I import on a regular base. It's not included if I export these 2 family trees to GEDCOM files either. BTW I have no open changes either.

Greg, I know this sounds weird. I'd therefor be happy to setup a screen sharing session for the two of us or provide more information upon your request.

fisharebest commented 2 years ago

I'd therefor be happy to setup a screen sharing session for the two of us or provide more information upon your request.

That would be helpful!

I've currently got both AnyDesk (prefered) and TeamViewer on my dev machine, so either of those would be good.

If you want to suggest some other remote-desktop application, then it needs a Mac version.

reteP-riS commented 2 years ago

Teamviewer would be fine although I am not so familiar with it. I'll switch to e-mail to agree upon further details.

ric2016 commented 2 years ago

Do you use Vesta shared places? If you do, it is possible that the place is created from a shared place hierarchy with the respective 'partial' place names. Can you rule this out as well?

reteP-riS commented 2 years ago

The Vesta Shared Places module is available on the server, but inactive and I think I never activated it. Would that module create its own tables or work with wt_gov_ids, wt_gov_labels, wt_gov_objects, wt_gov_parents, wt_gov_types and the webtrees standard tables?

ric2016 commented 2 years ago

Vesta Shared Places only uses standard tables so we can rule it out in this case.

reteP-riS commented 2 years ago

The following Vesta modules are active: ⚶ Vesta Classic Look & Feel ⚶ Vesta Common ⚶ Vesta Extended Relationships ⚶ Vesta Facts and events ⚶ Vesta Families ⚶ Vesta Gov4Webtrees ⚶ Vesta Places and Pedigree map ⚶ Vesta Webtrees Location Data Provider Besides the question which procedure adds to the wt_place_location and wt_places tables without adding a corresponding record in wt_placelinks we need to find out where exactly this data comes from. Remember, it's not even included in a complete database export. Could this place be cached somewhere?

I planned for a screen sharing session with Greg on Thursday. Maybe wait until after that meeting.

fisharebest commented 2 years ago

The place existed in wt_places - but without links to any individual/family or other record.

The entry in wt_places will create the entry in wt_place_location.

It is not created by GEDCOM import.

We have added some debugging, which will give us more information when the "zombie" place returns.

reteP-riS commented 2 years ago

Greg had a look onto my system, but we couldn't isolate the issue. We finally addedd a timestamp column to the wt_places table so that I'll be able to check my Apache access.log when the zombie place will resurrect once more. I may then be able to find out which http request causes the resurrection.

Many thanks so far!

ric2016 commented 2 years ago

You could try to debug this via an error_log with the stack trace (maybe restricted to specific place names) here: https://github.com/fisharebest/webtrees/blob/0ea4a3f27557abd0fc7491da72d684de4d58648b/app/Place.php#L137

That's how I found the cause of a similar issue in Gov4Webtrees.

reteP-riS commented 2 years ago

The zombie place resurrected once more, but I finally found its origin! It's included in a custom module for historic events https://github.com/reteP-riS/HistoricEvents-Germany/blob/7a88b6a7c67a0156e97b89fb77041e82db9efbf6/module.php#L210 and the webtrees Control Panel > Geographic Data page seeems to link the zombie PLACe to the first tree.

To reproduce this issue either install this module or add a similar EVENt to one of your own historic events modules including PLACe details for a PLACe that doesn't exist in any of your trees.

Now that the mystery is resolved I can see two ways to deal with this issue:

  1. either don't add PLACes from custom historic events modules to the database and don't show them on the Control Panel > Geographic Data page at all or
  2. make a better use of these PLACes and refer the user/administrator to the historic event (instead of pointing to non-existing events for individuals or families).

Clicking on the PLACe of the historic event on the individual's page both the standard webtrees Pedigree Map module and the ⚶ Vesta Places and Pedigree Map module open a world map with the Individuals 0 and Families 0 tabs and No results found below. Maybe a third tab Historic Events could be added on the map page to show this PLAC.

hartenthaler commented 2 years ago

Some time ago I thought about adding PLAC to historic events, too. But finally decided to not use this. Historic event modules can be used by many users and these users all have their own place hierarchy style. Your "2 PLAC Westerplatte, Neufahrwasser, Stadtkreis Danzig, Freie Stadt Danzig" does not make sense for my location hierarchy style, because it uses German location names for a location which is today located in Poland and doesn't follow my style "city, county, state, country". I think records in historic event modules should be restricted to EVEN, TYPE, DATE, NOTE, and SOUR.